моему приложению требуется выбрать несколько изображений из галереи и показать их в горизонтальном представлении Recycler. Я знаю, как это сделать, когда я использую только ImageView, но в этом случае я изо всех сил, как это сделать. После этого я отправлю изображения на сервер. Я создал свой адаптер для вида переработчика как:
public class HorizontalRecyclerView extends RecyclerView.Adapter<HorizontalRecyclerView.HorizontalViewHolder> {
private ArrayList<Photos> photos;
public HorizontalRecyclerView(ArrayList<Photos> photos) {
this.photos = photos;
}
@NonNull
@Override
public HorizontalViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int i) {
LayoutInflater inflater = LayoutInflater.from(parent.getContext());
View view = inflater.inflate(R.layout.row_image, parent, false);
return new HorizontalViewHolder(view);
}
@Override
public void onBindViewHolder(@NonNull HorizontalViewHolder horizontalViewHolder, int position) {
Photos imgs = photos.get(position);
Picasso.get()
.load(imgs.getUri())
.into(horizontalViewHolder.mImageRecyclerView);
}
@Override
public int getItemCount() {
return photos.size();
}
public class HorizontalViewHolder extends RecyclerView.ViewHolder {
ImageView mImageRecyclerView;
public HorizontalViewHolder(View itemView) {
super(itemView);
mImageRecyclerView = itemView.findViewById(R.id.imgLoader);
}
}
}
Я также сделал модель для выбора изображений и Uri:
public class Photos {
String name;
Uri uri;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Uri getUri() {
return uri;
}
public void setUri(Uri uri) {
this.uri = uri;
}
}
Я - моя деятельность, мне нужно позвонить в отдел утилизации просмотр, но не показывает мне ничего. Мне нужна помощь, как правильно. Мой код активности, только onActivityResult часть:
@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
try {
// When an image is picked
if (requestCode == PICK_IMAGE_MULTIPLE && resultCode == RESULT_OK && data != null) {
// get the image from data
String[] filePathColumn = { MediaStore.Images.Media.DATA };
imagesEncodedList = new ArrayList<>();
if (data.getData() != null) {
Uri mImageUri = data.getData();
// Get the cursor
Cursor cursor = getContentResolver().query(mImageUri, filePathColumn, null, null, null);
// Move to first row
assert cursor != null;
cursor.moveToFirst();
int columnIndex = cursor.getColumnIndex(filePathColumn[0]);
imageEncoded = cursor.getString(columnIndex);
cursor.close();
/*Bitmap mBitmap;
BitmapFactory.Options bitmapOptions = new BitmapFactory.Options();
mBitmap = BitmapFactory.decodeFile(file.getAbsolutePath(), bitmapOptions);
file = savebitmap(mBitmap);*/
ArrayList<Uri> mArrayUri = new ArrayList<>();
mArrayUri.add(mImageUri);
horizontalRecyclerView = new HorizontalRecyclerView(photos);
imagesRecyclerView.setAdapter(horizontalRecyclerView);
horizontalRecyclerView.notifyDataSetChanged();
} else {
if (data.getClipData() != null) {
ClipData mClipData = data.getClipData();
ArrayList<Uri> mArrayUri = new ArrayList<>();
for (int i = 0; i < mClipData.getItemCount(); i++) {
ClipData.Item item = mClipData.getItemAt(i);
Uri uri = item.getUri();
mArrayUri.add(uri);
// Get the cursor
Cursor cursor = getContentResolver().query(uri, filePathColumn, null, null, null);
// Move to first row
assert cursor != null;
cursor.moveToFirst();
int columnIndex = cursor.getColumnIndex(filePathColumn[0]);
imageEncoded = cursor.getString(columnIndex);
imagesEncodedList.add(imageEncoded);
cursor.close();
/*Bitmap mMultipleBitmap;
BitmapFactory.Options bo = new BitmapFactory.Options();
mMultipleBitmap = BitmapFactory.decodeFile(file.getAbsolutePath(), bo);
file = savebitmap(mMultipleBitmap);*/
horizontalRecyclerView = new HorizontalRecyclerView(photos);
imagesRecyclerView.setAdapter(horizontalRecyclerView);
horizontalRecyclerView.notifyDataSetChanged();
}
Log.v("LOG_TAG", "Selected Images" + mArrayUri.size());
}
}
} else {
Toast.makeText(this, "You haven't picked Image", Toast.LENGTH_LONG).show();
}
} catch (Exception e) {
Toast.makeText(this, "Something went wrong", Toast.LENGTH_LONG).show();
}
super.onActivityResult(requestCode, resultCode, data);
}
Любая помощь приветствуется.