Я занимаюсь разработкой приложения для Android, в котором ViewPager раздувается с помощью ImageViews.У меня есть массив URL-адресов изображений, но в разных случаях массив имеет разные размеры, поэтому загрузка должна выполняться динамически.Я использую цель библиотеки Picasso для загрузки изображений в растровый массив ArrayList, а затем обновляю ViewPagerAdapter
pagerAdapter.updateImages(images); // passing ArrayaList<Image> to the adapter
pagerAdapter.notifyDataSetChanged();
int currentItem = pager.getCurrentItem();
pager.setAdapter(pagerAdapter);
pager.setCurrentItem(currentItem);
pager.setOffscreenPageLimit(images.size()-1);
Проблема связана с производительностью приложения - некоторые изображения не загружаются должным образом в ImageView, а также когдаЯ начинаю перелистывать изображения, у меня очень низкая производительность по некоторым элементам (некоторые из них с разрешением 6000x6000) XML для PagerView
<android.support.v4.view.ViewPager
android:id="@+id/productPager"
android:layout_width="match_parent"
android:layout_height="400dp">
<ImageView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/productImage"
android:scaleType="fitXY"/>
</android.support.v4.view.ViewPager>
Вот как я создаю и уничтожаю объекты:
public Object instantiateItem(@NonNull ViewGroup container, int position) {
layoutInflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View view = layoutInflater.inflate(R.layout.image_product, null);
ImageView imageView = view.findViewById(R.id.productImageView);
if(images.size()!=0) {
imageView.setImageBitmap(images.get(position));
}
container.addView(view, 0);
return view;
}
@Override
public void destroyItem(@NonNull ViewGroup container, int position, @NonNull Object object) {
((ViewPager)container).removeView((View)object);
}
Независимо от того, на что я изменяю scaleType, некоторые изображения не помещаются в ImageView.До этого у меня была похожая проблема, но изображение, которое я должен был загрузить, было одним изображением, и я смог вставить его в ImageView, используя метод picasso fit ().Производительность и внешний вид изображения после этого идеальны.Дайте мне несколько советов, как загрузить изображения в ViewPager, чтобы я мог использовать их соответствующим образом.