在Android L中从ImageView获取位图

我想从ImageView获取Bitmap 。 我已经使用下面的代码,但getDrawable()返回null。 如何从ImageView获取整个Bitmap

 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"); 

  • 如何在保持纵横比的同时使图像尽可能大
  • “画廊types已被弃用”,什么是最好的选择?
  • 把一个button放在ImageView上
  • 如何获取附加到ImageView的整个位图?
  • Android:ImageView getID(); 返回整数
  • Imageview缩放方法“centercrop”为代码
  • 如何在ImageView Android上添加标记/引脚?
  • Android,ImageView上的ImageView
  • 尝试这个:

     BitmapDrawable drawable = (BitmapDrawable) imageView.getDrawable(); Bitmap bitmap = drawable.getBitmap(); 

    根据这个答案 ,就这样做:

     imageView.buildDrawingCache(); Bitmap bmap = imageView.getDrawingCache(); 

    如果你只是想从一个ImageView的位图下面的代码可能会为你工作: –

    Bitmap bm=((BitmapDrawable)imageView.getDrawable()).getBitmap();

    尝试所有可绘制的质量文件夹中的图像(drawable-hdpi / drawable-ldpi等)

    可能是您使用的模拟器或设备具有不同的密度,并试图从另一个文件夹中提取图像。

    如果您在图片中使用的扩展名不是.png,.jpg或.gif,则可能无法识别其他扩展名types。 http://developer.android.com/guide/topics/resources/drawable-resource.html

    如果你正在尝试从Glide加载的图像获取位图,那么这将帮助你

      Drawable dr = ((ImageView) imView).getDrawable(); Bitmap bmp = ((GlideBitmapDrawable)dr.getCurrent()).getBitmap(); 

    拍摄ImagView的图片并将其转换为string发送到服务器

      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; }