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

将位图附加到ImageView

将位图附加到ImageView

翻过高山走不出你 2019-12-10 13:08:16
给定ImageView image = R.findViewById(R.id.imageView);image.setImageBitmap(someBitmap);是否可以检索位图?
查看完整描述

3 回答

?
繁星点点滴滴

TA贡献1803条经验 获得超3个赞

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

查看完整回答
反对 回复 2019-12-11
?
慕盖茨4494581

TA贡献1850条经验 获得超11个赞

这将使您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-12-11
?
喵喵时光机

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

这段代码更好。


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-12-11
  • 3 回答
  • 0 关注
  • 277 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号