Ответ 1
Попробуйте следующее:
BitmapDrawable drawable = (BitmapDrawable) imageView.getDrawable();
Bitmap bitmap = drawable.getBitmap();
Я хочу получить Bitmap
от ImageView
. Я использовал следующий код, но getDrawable()
возвращает null. Как получить целую Bitmap
от ImageView
.
Bitmap bitmap;
if (mImageViewer.getDrawable() instanceof BitmapDrawable) {
bitmap = ((BitmapDrawable) mImageViewer.getDrawable()).getBitmap();
} else {
Drawable d = mImageViewer.getDrawable();
bitmap = Bitmap.createBitmap(d.getIntrinsicWidth(), d.getIntrinsicHeight(), Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(bitmap);
d.draw(canvas);
}
storeImage(bitmap,"final.jpeg");
Попробуйте следующее:
BitmapDrawable drawable = (BitmapDrawable) imageView.getDrawable();
Bitmap bitmap = drawable.getBitmap();
В соответствии с этим ответом просто выполните следующее:
imageView.buildDrawingCache();
Bitmap bmap = imageView.getDrawingCache();
Если вы просто хотите, чтобы Bitmap из ImageView, для вас может работать следующий код: -
Bitmap bm=((BitmapDrawable)imageView.getDrawable()).getBitmap();
Попробуйте создать изображение во всех папках с доступными качествами (drawable-hdpi/drawable-ldpi и т.д.)
Возможно, эмулятор или устройство, используемое вами, имеют разную плотность и пытаются вытащить изображения из другой папки.
Если вы используете расширение на своем изображении, отличном от .png,.jpg или .gif, оно может не распознавать другие типы расширений. http://developer.android.com/guide/topics/resources/drawable-resource.html
Если вы пытаетесь получить растровое изображение из загруженного изображения Glide, то это поможет вам
Drawable dr = ((ImageView) imView).getDrawable();
Bitmap bmp = ((GlideBitmapDrawable)dr.getCurrent()).getBitmap();
Сделайте снимок ImagView и преобразуйте его в строку для отправки на сервер
ImageView ivImage1 = (ImageView ) findViewById(R.id.img_add1_send );
getStringImage( ( ( BitmapDrawable ) ivImage1.getDrawable( ) ).getBitmap( ) ),
public String getStringImage(Bitmap bm){
ByteArrayOutputStream ba=new ByteArrayOutputStream( );
bm.compress( Bitmap.CompressFormat.PNG,90,ba );
byte[] by=ba.toByteArray();
String encod= Base64.encodeToString( by,Base64.DEFAULT );
return encod;
}