我经常下载尺寸较大的图片并使用imageview缩小它们但最近我试图处理我的应用程序没有在较小的网络连接上工作所以我想知道如何获得图像的大小一旦它获得到设备。我尝试在图像视图中调整图像大小,但图像视图不会比原始图像大。我确定这是一个非常简单的方法来增加或炸毁设备上的图像,但我还没有遇到它。
所以.....我怎样才能增加图像的大小。我喜欢把它炸掉并在imageview中使用它,但我处理的图像只有128X256而且我喜欢将它们扩展到大约512X1024。
答案 0 :(得分:5)
尝试使用此方法:
public static Bitmap scaleBitmap(Bitmap bitmapToScale, float newWidth, float newHeight) {
if(bitmapToScale == null)
return null;
//get the original width and height
int width = bitmapToScale.getWidth();
int height = bitmapToScale.getHeight();
// create a matrix for the manipulation
Matrix matrix = new Matrix();
// resize the bit map
matrix.postScale(newWidth / width, newHeight / height);
// recreate the new Bitmap and set it back
return Bitmap.createBitmap(bitmapToScale, 0, 0, bitmapToScale.getWidth(), bitmapToScale.getHeight(), matrix, true); }
请参阅我的回答:ImageView OutofMemoryException
答案 1 :(得分:2)
使用矩阵调整位图大小。
检查一下 Resize Bitmap
答案 2 :(得分:0)
如果您想手动缩放位图,可以使用Bitmap.createScaledBitmap()
方法进行此操作。
如果您希望ImageView处理此问题,您必须将layout_width
/ layout_height
设置为wrap_content
之外的其他内容,否则它将始终缩小到位图的大小。然后,您需要将scaleType
属性更改为实际缩放位图的类型。
答案 3 :(得分:0)
通过android.graphics库可以轻松获得向上或向下缩放图像的功能:
Bitmap bitmapScaled = Bitmap.createScaledBitmap(Bitmap bitmapOrig, int widthNew, int heightNew, boolean filter);