düzgün Bitmap yaratmak değildir gibi görünüyor, ama ben senin yerinde olsaydım şöyle bir ölçekli bitmap oluşturmak olacaktır: Sonra
public Bitmap getResizedBitmap(Bitmap bm, int newWidth, int newHeight) {
int width = bm.getWidth();
int height = bm.getHeight();
float scaleWidth = ((float) newWidth)/width;
float scaleHeight = ((float) newHeight)/height;
// CREATE A MATRIX FOR THE MANIPULATION
Matrix matrix = new Matrix();
// RESIZE THE BIT MAP
matrix.postScale(scaleWidth, scaleHeight);
// "RECREATE" THE NEW BITMAP
Bitmap resizedBitmap = Bitmap.createBitmap(
bm, 0, 0, width, height, matrix, false);
bm.recycle();
return resizedBitmap;
}
şöyle bir imageView ayarlayın:
mImg.setImageBitmap(img);
Genel olarak şu şekilde görünecektir:
public void loadImage() {
Picasso.with(getBaseContext()).load("image url").into(new Target() {
// ....
@Override
public void onBitmapLoaded(Bitmap bitmap, Picasso.LoadedFrom arg1) {
// Pick arbitrary values for width and height
Bitmap resizedBitmap = getResizedBitmap(bitmap, newWidth, newHeight);
mImageView.setBitmap(resizedBitmap);
}
// ....
});
}
}
public Bitmap getResizedBitmap(Bitmap bm, int newWidth, int newHeight) {
int width = bm.getWidth();
int height = bm.getHeight();
float scaleWidth = ((float) newWidth)/width;
float scaleHeight = ((float) newHeight)/height;
// CREATE A MATRIX FOR THE MANIPULATION
Matrix matrix = new Matrix();
// RESIZE THE BIT MAP
matrix.postScale(scaleWidth, scaleHeight);
// "RECREATE" THE NEW BITMAP
Bitmap resizedBitmap = Bitmap.createBitmap(
bm, 0, 0, width, height, matrix, false);
bm.recycle();
return resizedBitmap;
}
Amakullanarak sorutamamen, genellikle çok özel bir durum içindir. Görüntüleri gösterecek aynı sınıfta Picasso
'un tekil numarasını aramalısınız.
Picasso.with(mContext)
.load("image url")
.into(mImageView);
sayesinde zaten boyutlandırma için yerinde yöntemleri (var http://developer.android.com/training/displaying-bitmaps/load-bitmap: Genellikle bu bir
Adapter
(RecyclerView Adaptörü belki) şöyle içindedir .html). Sadece bir URL'den bir görüntüyü Bitmap'e (doğrudan bir ImageView'a değil) yüklemem gerekiyordu, bu da yukarıdaki yorumlardan anlaşılıyordu. Çok teşekkürler. – AlexGörüntüyü yüklemek için neden zaman uyumsuz bir görev kullanıyorsunuz? Sadece .into (mImageView, yeni Geri Arama <> {...}) bir geri çağırma uygulayabilirsiniz; – AndyRoid
Aslında, bir resim bir bitmap'e yüklemek için hızlı bir yol deniyordu, bu da gerçekten kaynak klasöründen yüklemek yerine bir Bağdaştırıcıya (RecycleView) geçirilecek. Http://stackoverflow.com/questions/32554358/encountering-lag-when-updating-a-cardview-item-in-a-recycleview adresinde açıklanan bir sorunu ayıklamaya çalışıyorum. Resmi, görüntülenecekleri sınıfta yüklemeyi deneyeceğim. Ama Picasso'nun sadece bir etkinlik sınıfında kullanılabileceğini ya da en azından bazı mesajlardan anladığım kadarıyla. Bağlamı Bağdaştırıcı sınıfına iletmem gerektiğini düşünüyorum. – Alex