android bitmap 改变图片大小
时间: 2023-10-18 07:10:40 浏览: 130
要改变Android Bitmap的大小,可以使用Bitmap.createScaledBitmap()方法来缩放图像。该方法需要原始位图、新宽度和新高度作为参数,并返回一个新的位图对象,该对象具有指定的宽度和高度。
以下是一个示例代码片段,可以将原始位图缩放为新的大小:
```java
Bitmap originalBitmap = BitmapFactory.decodeResource(getResources(), R.drawable.original_image);
int width = originalBitmap.getWidth();
int height = originalBitmap.getHeight();
int newWidth = 300;
int newHeight = 300;
float scaleWidth = ((float) newWidth) / width;
float scaleHeight = ((float) newHeight) / height;
Matrix matrix = new Matrix();
matrix.postScale(scaleWidth, scaleHeight);
Bitmap scaledBitmap = Bitmap.createBitmap(originalBitmap, 0, 0, width, height, matrix, false);
```
在上面的代码中,我们首先使用BitmapFactory.decodeResource()方法从资源文件中获取原始位图。然后,我们获取原始位图的宽度和高度,并计算新的宽度和高度。接下来,我们使用Matrix.postScale()方法创建一个变换矩阵,该矩阵将原始位图缩放到新的大小。最后,我们使用Bitmap.createBitmap()方法创建一个新的位图对象,该对象具有指定的宽度和高度。
请注意,使用Bitmap.createScaledBitmap()会在内存中创建新的位图对象,因此可能会占用大量内存。如果内存使用量是一个问题,可以考虑使用inSampleSize属性来加载缩小的位图,或者使用更高级的技术,如OpenGL ES纹理渲染。
阅读全文