我想创建一个具有已定义大小的新位图,例如200x200
Bitmap b = Bitmap.createBitmap(200, 200, Bitmap.Config.ARGB_8888);
现在我的理解是将该位图放入SD卡的图像中,但将SD的图像调整为我创建的位图的大小。
使用以下方法执行使用ImageView的操作:
<ImageView android:src="@drawable/landscape"
android:adjustViewBounds="false" />
我寻找的结果如下:
提前致谢。
编辑:发布我的代码
public static Bitmap decodeSampledBitmapFromResource(Resources res, int resId, int reqWidth, int reqHeight) {
// First decode with inJustDecodeBounds=true to check dimensions
final BitmapFactory.Options options = new BitmapFactory.Options();
options.inJustDecodeBounds = false;
BitmapFactory.decodeResource(res, resId, options);
// Calculate inSampleSize
// options.inSampleSize = calculateInSampleSize(options, reqWidth, reqHeight);
// Decode bitmap with inSampleSize set
options.inJustDecodeBounds = false;
return BitmapFactory.decodeResource(res, resId, options);
}
-
imageView.setImageBitmap(decodeSampledBitmapFromResource(getResources(), R.drawable.paisaje, 200, 200));
答案 0 :(得分:1)
outWidth
中的{p> outHeight
和BitmapFactory.Options
未设置结果图像的宽度和高度。它们仅在您更改inSampleSize
且inJustDecodeBounds
设置为false
时更改,否则用于读取图像的高度和宽度。
您可以尝试createScaledBitmap
缩放位图并返回新的位图。
public Bitmap decodeSampledBitmapFromResource(Resources res, int resId, int reqWidth, int reqHeight) {
return Bitmap.createScaledBitmap(BitmapFactory.decodeResource(res, resId), reqWidth, reqHeight, true);
}