我通常会下载尺寸较大的图像并使用图像视图缩小它们,但最近我试图处理我的应用程序无法在较小的网络连接上运行,所以我想知道如何在图像到达设备后增加图像的大小. 我尝试在图像视图中调整图像大小,但图像视图不会大于原始图像。我确信有一种非常简单的方法可以增加或放大设备上的图像,但我还没有遇到过。
那么.....我怎样才能增加图像的大小。我想把它炸毁并在图像视图中使用它,但我处理的图像只有 128X256,我想将它们扩展到大约 512X1024。
我通常会下载尺寸较大的图像并使用图像视图缩小它们,但最近我试图处理我的应用程序无法在较小的网络连接上运行,所以我想知道如何在图像到达设备后增加图像的大小. 我尝试在图像视图中调整图像大小,但图像视图不会大于原始图像。我确信有一种非常简单的方法可以增加或放大设备上的图像,但我还没有遇到过。
那么.....我怎样才能增加图像的大小。我想把它炸毁并在图像视图中使用它,但我处理的图像只有 128X256,我想将它们扩展到大约 512X1024。
尝试使用此方法:
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); }
使用矩阵来调整位图的大小。
检查此 调整大小位图
The functionality to scale image up or down is readily available via android.graphics library:
Bitmap bitmapScaled = Bitmap.createScaledBitmap(Bitmap bitmapOrig, int widthNew, int heightNew, boolean filter);
如果要手动缩放位图,Bitmap.createScaledBitmap()
可以使用一种方法。
如果您希望 ImageView 处理此问题,则必须将layout_width
/设置layout_height
为其他内容,wrap_content
否则它将始终缩小到位图的大小。然后您需要将scaleType
属性更改为实际缩放位图的类型。