Пролистывание растровых изображений с помощью ViewPager - PullRequest
0 голосов
/ 03 декабря 2018

Я пытаюсь создать приложение, в котором я могу пролистывать фотографии.В настоящее время у меня есть изображения, сохраненные в виде растровых изображений.Как я могу использовать ViewPager для пролистывания изображений?(Желательно без Пикассо или Глайда)

1 Ответ

0 голосов
/ 03 декабря 2018

Вы сказали, что у вас есть растровые изображения, храните их в arraylist.Сначала создайте адаптер для вашего ViewPager.

public class AdapterPagerImageSlider extends PagerAdapter {

    private ArrayList<Bitmap> bitmaps;
    private Context context;
    private LayoutInflater layoutInflater;

    public AdapterPagerImageSlider(Context context, ArrayList<Bitmap> bitmaps) {
        this.context = context;
        this.bitmaps= bitmaps;
    }

    @Override
    public Object instantiateItem(ViewGroup container, int position) {
        layoutInflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        View view = layoutInflater.inflate(R.layout.inflater_imageslider, container, false);

        ImageView imageView = view.findViewById(R.id.image);
        imageView.setImageBitmap(bitmaps.get(position)); //this set image from bitmap

        container.addView(view);
        return view;
    }

    @Override
    public int getCount() {
        return bitmaps.size();
    }

    @Override
    public void destroyItem(ViewGroup container, int position, Object object) {
        container.removeView((LinearLayout) object);
    }

    @Override
    public boolean isViewFromObject(@NonNull View view, @NonNull Object o) {
        return (view == o);
    }
}

Затем создайте макет и назовите его inflater_imageslider

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
    <ImageView
        android:id="@+id/image"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />
</LinearLayout>

Last, объявите этот адаптер и установите его для своего ViewPager.

ArrayList<Bitmap> bitmaps = new ArrayList<>();
//code of storing your bitmaps to arraylist here : bitmaps.add(yourbitmap);
ViewPager vp = findViewById(R.id.vp);
AdapterPagerImageSlider adapter = new AdapterPagerImageSlider(MainActivity.this, bitmaps);
vp.setAdapter(adapter);

Надеюсь, это поможет.

...