Android:如何将整个ImageView转换为Bitmap?
我有我的应用程序显示不同比例的图像,resize(centerInside)imageView中。 我需要的是从ImageView创build位图,包括背景(在这种情况下是黑色)。
所以例如我有设备屏幕320×480,全屏幕imageView与图像resize为280×480。 我怎么能从它得到320×480位图?
在这个imageview的顶部,我有一些标志或button,我不想包含在位图,他们就像在顶层。 所有我需要的是位图与图像和黑色的边界从一边。
你可以使用imageView的图像caching。 它会渲染整个视图(缩放,与背景等边界)到一个新的位图。
只要确保它build立。
imageView.buildDrawingCache(); Bitmap bmap = imageView.getDrawingCache();
屏幕上就会显示你的位图。
你有没有尝试过:
BitmapDrawable drawable = (BitmapDrawable) imageView.getDrawable(); Bitmap bitmap = drawable.getBitmap();
在这里大声想一想(在Java中使用graphics方面的专业知识确实很less),也许像这样的工作?
ImageView iv = (ImageView)findViewById(R.id.imageview); Bitmap bitmap = Bitmap.createBitmap(iv.getWidth(), iv.getHeight(), Bitmap.Config.RGB_565); Canvas canvas = new Canvas(bitmap); iv.draw(canvas);
出于好奇,你想完成什么? 实现你的目标可能比你想象的更好。
try { photo.setImageURI(Uri.parse("Location"); BitmapDrawable drawable = (BitmapDrawable) photo.getDrawable(); Bitmap bitmap = drawable.getBitmap(); bitmap = Bitmap.createScaledBitmap(bitmap, 70, 70, true); photo.setImageBitmap(bitmap); } catch (Exception e) { }
这是一个工作代码
imageView.setDrawingCacheEnabled(true); imageView.buildDrawingCache(); Bitmap bitmap = Bitmap.createBitmap(imageView.getDrawingCache());