鉴于
ImageView image = R.findViewById(R.id.imageView);
image.setImageBitmap(someBitmap);
是否有可能检索位图?
鉴于
ImageView image = R.findViewById(R.id.imageView);
image.setImageBitmap(someBitmap);
是否有可能检索位图?
当前回答
这将从ImageView中获得一个位图。但是,它不是您所设置的位图对象。这是一个新的。
imageView.buildDrawingCache();
Bitmap bitmap = imageView.getDrawingCache();
=== edit ===
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);
其他回答
这将从ImageView中获得一个位图。但是,它不是您所设置的位图对象。这是一个新的。
imageView.buildDrawingCache();
Bitmap bitmap = imageView.getDrawingCache();
=== edit ===
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);
试试下面的代码:
Bitmap bitmap;
bitmap = ((BitmapDrawable)image.getDrawable()).getBitmap();
另一种获取图像位图的方法是这样做:
Bitmap imagenAndroid = BitmapFactory.decodeResource(getResources(),R.drawable.jellybean_statue);
imageView.setImageBitmap(imagenAndroid);
Bitmap bitmap = ((BitmapDrawable)image.getDrawable()).getBitmap();
对于那些正在寻找Kotlin解决方案从ImageView获得位图的人。
var bitmap = (image.drawable as BitmapDrawable).bitmap