我正在做一个“图像编辑器”之类的应用程序。我使用默认的相机意图来捕捉图像。我曾经解析 URI 并将其设置为图像视图,如下所示:
imgCaptured.setImageURI(Uri.parse(filePath));
如果我使用这个原始图像,偶尔会出现内存不足的错误!所以我决定使用以下方法解码图像:
“从stackoverflow获得”
BitmapFactory.Options options = new BitmapFactory.Options();
options.inSampleSize = 8;
preview_bitmap = BitmapFactory.decodeStream(is, null, options);
private Bitmap decodeFile(File f) {
try {
// Decode image size
BitmapFactory.Options o = new BitmapFactory.Options();
o.inJustDecodeBounds = true;
BitmapFactory.decodeStream(new FileInputStream(f), null, o);
// The new size we want to scale to
final int REQUIRED_SIZE = 95;
// Find the correct scale value. It should be the power of 2.
int scale = 1;
while (o.outWidth / scale / 2 >= REQUIRED_SIZE
&& o.outHeight / scale / 2 >= REQUIRED_SIZE)
scale *= 2;
// Decode with inSampleSize
BitmapFactory.Options o2 = new BitmapFactory.Options();
o2.inSampleSize = scale;
return BitmapFactory.decodeStream(new FileInputStream(f), null, o2);
} catch (FileNotFoundException e) {
}
return null;
}
如果我使用解码后的图像,则输出质量不佳。有些似乎是模糊的。我想要一个清晰的图像!将其设置为 ImageView 后。我需要拖放另一个视图。
- 我怎样才能实现上述目标?
- 有什么好方法可以做到这一点?