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