我有一个片段,有一个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);
}
});