为了账号安全,请及时绑定邮箱和手机立即绑定

将位图附加到ImageView

将位图附加到ImageView

慕哥9229398 2019-10-24 10:04:53
给定ImageView image = R.findViewById(R.id.imageView);image.setImageBitmap(someBitmap);是否可以检索位图?
查看完整描述

3 回答

?
胡子哥哥

TA贡献1825条经验 获得超6个赞

Bitmap bitmap = ((BitmapDrawable)image.getDrawable()).getBitmap();


查看完整回答
反对 回复 2019-10-24
?
鸿蒙传说

TA贡献1865条经验 获得超7个赞

这将使您Bitmap从中受益ImageView。但是,它与您设置的位图对象不同。这是一个新的。


imageView.buildDrawingCache();

Bitmap bitmap = imageView.getDrawingCache();

===编辑===


 imageView.setDrawingCacheEnabled(true);

 imageView.measure(MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED), 

                   MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED));

 imageView.layout(0, 0, 

                  imageView.getMeasuredWidth(), imageView.getMeasuredHeight()); 

 imageView.buildDrawingCache(true);

 Bitmap bitmap = Bitmap.createBitmap(imageView.getDrawingCache());

 imageView.setDrawingCacheEnabled(false);


查看完整回答
反对 回复 2019-10-24
?
慕后森

TA贡献1802条经验 获得超5个赞

这段代码更好。


public static  byte[] getByteArrayFromImageView(ImageView imageView)

    {

        BitmapDrawable bitmapDrawable = ((BitmapDrawable) imageView.getDrawable());

        Bitmap bitmap;

        if(bitmapDrawable==null){

            imageView.buildDrawingCache();

            bitmap = imageView.getDrawingCache();

            imageView.buildDrawingCache(false);

        }else

        {

            bitmap = bitmapDrawable .getBitmap();

        }

        ByteArrayOutputStream stream = new ByteArrayOutputStream();

        bitmap.compress(Bitmap.CompressFormat.JPEG, 100, stream);

        return stream.toByteArray();

    }


查看完整回答
反对 回复 2019-10-24
  • 3 回答
  • 0 关注
  • 383 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信