Imageview 自动调整加载到其中的图像
Imageview automatically adjusts Images that are loaded into it
我正在使用 glide 将图像加载到使用 viewpager2 滑动的 imageview images.When 我将图像加载到 imageview 它首先填充屏幕的宽度然后它再次增加宽度就像它在模仿缩放行为。
我的滑行实现:
glide.asBitmap().load(images.get(position)).apply(options).listener(new RequestListener<Bitmap>() {
@Override
public boolean onLoadFailed(@Nullable GlideException e, Object model, Target<Bitmap> target, boolean isFirstResource) {
((Activity) context).startPostponedEnterTransition();
return false;
}
@Override
public boolean onResourceReady(Bitmap resource, Object model, Target<Bitmap> target, DataSource dataSource, boolean isFirstResource) {
((Activity) context).startPostponedEnterTransition();
return false;
}
}).into(holder.photoView);
请求选项:
RequestOptions options = new RequestOptions()
.placeholder(R.color.black)
.error(R.color.black)
.dontTransform()
.skipMemoryCache(true)
//. encodeFormat(Bitmap.CompressFormat.PNG)
//.priority(Priority.IMMEDIATE)
.format(DecodeFormat.PREFER_ARGB_8888)
.diskCacheStrategy(DiskCacheStrategy.NONE);
ViewPager Xml:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/myRel"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@android:color/black"
tools:context=".ShowImage">
<androidx.viewpager2.widget.ViewPager2
android:id="@+id/pager"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@android:color/black"
android:layout_centerInParent="true"
/>
<include
android:id="@+id/show_Image_toolbar"
layout="@layout/image_custom_toolbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:transitionName="transitionToolbar"
/>
</RelativeLayout>
Imageview 的 Viewpager2 inflater 布局:
<androidx.appcompat.widget.AppCompatImageView
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/photoView"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:adjustViewBounds="true"
android:scaleType="fitCenter"
android:layout_weight="1"
/>
显然发生这种情况是因为我在 UI 线程上做了太多 processing/work,所以图像的加载和转换速度变慢,导致 ImageView 滞后。
我正在使用 glide 将图像加载到使用 viewpager2 滑动的 imageview images.When 我将图像加载到 imageview 它首先填充屏幕的宽度然后它再次增加宽度就像它在模仿缩放行为。 我的滑行实现:
glide.asBitmap().load(images.get(position)).apply(options).listener(new RequestListener<Bitmap>() {
@Override
public boolean onLoadFailed(@Nullable GlideException e, Object model, Target<Bitmap> target, boolean isFirstResource) {
((Activity) context).startPostponedEnterTransition();
return false;
}
@Override
public boolean onResourceReady(Bitmap resource, Object model, Target<Bitmap> target, DataSource dataSource, boolean isFirstResource) {
((Activity) context).startPostponedEnterTransition();
return false;
}
}).into(holder.photoView);
请求选项:
RequestOptions options = new RequestOptions()
.placeholder(R.color.black)
.error(R.color.black)
.dontTransform()
.skipMemoryCache(true)
//. encodeFormat(Bitmap.CompressFormat.PNG)
//.priority(Priority.IMMEDIATE)
.format(DecodeFormat.PREFER_ARGB_8888)
.diskCacheStrategy(DiskCacheStrategy.NONE);
ViewPager Xml:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/myRel"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@android:color/black"
tools:context=".ShowImage">
<androidx.viewpager2.widget.ViewPager2
android:id="@+id/pager"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@android:color/black"
android:layout_centerInParent="true"
/>
<include
android:id="@+id/show_Image_toolbar"
layout="@layout/image_custom_toolbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:transitionName="transitionToolbar"
/>
</RelativeLayout>
Imageview 的 Viewpager2 inflater 布局:
<androidx.appcompat.widget.AppCompatImageView
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/photoView"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:adjustViewBounds="true"
android:scaleType="fitCenter"
android:layout_weight="1"
/>
显然发生这种情况是因为我在 UI 线程上做了太多 processing/work,所以图像的加载和转换速度变慢,导致 ImageView 滞后。