Я разрабатываю приложение для обоев, в котором я показываю изображения с помощью firebase и Picasso в GridView. Я хочу получить изображение с сервера и изменить его размер в соответствии с разрешением экрана. Пусть размер изображения 3000*5000 и размер экрана устройства 720*1280, тогда изображение обрезается до 720*1280.
https://developer.android.com/topic/performance/graphics/load-bitmap дает решение, но оно изменило размер файла для рисования и с фиксированным размером.
Но я хочу изменить размер изображения сервера с размером экрана устройства.
RecyclerView ViewHolder
public void setDetails(Context ctx, String image){
ImageView mImageTv = mView.findViewById(R.id.rImageView);
Picasso.get().load(image).into(mImageTv);
}
Передача изображения из Fragment в FullscreenActivity с помощью putExtra
ViewHolder viewHolder = super.onCreateViewHolder(parent, viewType);
viewHolder.setOnclickListener(new ViewHolder.ClickListener() {
@Override
public void onItemClick(View view, int position) {
ImageView mImageView = view.findViewById(R.id.rImageView);
Drawable mDrawable = mImageView.getDrawable();
Bitmap mBitmap = ((BitmapDrawable) mDrawable).getBitmap();
Intent intent = new Intent(view.getContext(), PostDetailsActivity2.class);
ByteArrayOutputStream stream = new ByteArrayOutputStream();
mBitmap.compress(Bitmap.CompressFormat.PNG, 100, stream);
byte[] bytes = stream.toByteArray();
intent.putExtra("image", bytes);
startActivity(intent);
}
Показать изображение в полноэкранном режиме
mImageTv = findViewById(R.id.full_imageView1);
byte[] bytes = getIntent().getByteArrayExtra("image");
Bitmap bmp = BitmapFactory.decodeByteArray(bytes, 0, bytes.length);
mImageTv.setImageBitmap(bmp);
Пожалуйста, помогите мне, если вы можете .... если кому-то нужна дополнительная информация о коде или о моей проблеме, пожалуйста, прокомментируйте для них .... Спасибо.