繁体   English   中英

如何将图像从图库设置为滑块?

[英]How do I set images from gallery to slider?

我有一个片段,有一个imageView和2个按钮(上一个和下一个)。 因此,在该imageView中,我要添加图库中的第一张图片。 然后单击下一步,我想查看图库中的下一张图像。 我已经得到的图像的路径。

让我向您展示代码。

public class PhotoFragment extends BaseFragment{
View mainView;
private ImageView photoView;
private Button prev, next;

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    mainView = inflater.inflate(R.layout.photo_fragment, container, false);

    photoView = (ImageView) mainView.findViewById(R.id.photoView);
    prev = (Button) mainView.findViewById(R.id.prevPhoto);
    next = (Button) mainView.findViewById(R.id.nextPhoto);

    getAllShownImagesPath(getActivity());
    return mainView;
}

ArrayList<String> getAllShownImagesPath(Activity activity) {
    Uri uri;
    Cursor cursor;
    int column_index_data;
    final ArrayList<String> listOfAllImages = new ArrayList<>();
    String absolutePathOfImage;
    uri = android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI;

    String[] projection = {MediaStore.MediaColumns.DATA,
            MediaStore.Images.Media.BUCKET_DISPLAY_NAME};

    cursor = activity.getContentResolver().query(uri, projection, null,
            null, null);

    column_index_data = cursor.getColumnIndexOrThrow(MediaStore.MediaColumns.DATA);
    while (cursor.moveToNext()) {
        absolutePathOfImage = cursor.getString(column_index_data);
        listOfAllImages.add(absolutePathOfImage);
    }

    Bitmap myBitmap = BitmapFactory.decodeFile(listOfAllImages.get(0));
    photoView.setImageBitmap(myBitmap);
    photoView.setRotation(90);

    Bitmap myBitmap1 = BitmapFactory.decodeFile(listOfAllImages.get(1));
    Bitmap myBitmap2 = BitmapFactory.decodeFile(listOfAllImages.get(2));
    Bitmap myBitmap3 = BitmapFactory.decodeFile(listOfAllImages.get(3));
    Bitmap myBitmap4 = BitmapFactory.decodeFile(listOfAllImages.get(4));
    Bitmap myBitmap5 = BitmapFactory.decodeFile(listOfAllImages.get(5));
    Bitmap myBitmap6 = BitmapFactory.decodeFile(listOfAllImages.get(6));

    final ArrayList<Bitmap> bitmap = new ArrayList<>();
    bitmap.add(myBitmap);
    bitmap.add(myBitmap1);
    bitmap.add(myBitmap2);
    bitmap.add(myBitmap3);
    bitmap.add(myBitmap4);
    bitmap.add(myBitmap5);
    bitmap.add(myBitmap6);


    prev.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {

        }
    });

    next.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {

        }
    });

    cursor.close();
    return listOfAllImages;
}

您会在这里看到我正在获取第一张图像并将其设置在imageView中。

Bitmap myBitmap = BitmapFactory.decodeFile(listOfAllImages.get(0));
    photoView.setImageBitmap(myBitmap);

但是我不能做滑动部分。 我怎样才能做到这一点?

int imagePosition = 0;

next.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
          imagePosition++;
      photoView.setImageBitmap(BitmapFactory.decodeFile(listOfAllImages.get(imagePosition)););
          photoView.setRotation(90);
        }
    });

prev.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
          imagePosition--;
      photoView.setImageBitmap(BitmapFactory.decodeFile(listOfAllImages.get(imagePosition)););
          photoView.setRotation(90);
        }
    });

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM