在这个问题ImageView will reset to original state after rolling中,我知道如何旋转 imageView 并在旋转后保持它。
但是现在,我需要根据旋转后的图像进行一些缩放。缩放时,图像会在旋转之前重置为原始图像,这不是我想要的。
所以我想在旋转后从 ImageView 中获取位图,并让 ImageView 使用新的。问题是:
旋转后如何从 ImageView 中获取位图?
在这个问题ImageView will reset to original state after rolling中,我知道如何旋转 imageView 并在旋转后保持它。
但是现在,我需要根据旋转后的图像进行一些缩放。缩放时,图像会在旋转之前重置为原始图像,这不是我想要的。
所以我想在旋转后从 ImageView 中获取位图,并让 ImageView 使用新的。问题是:
旋转后如何从 ImageView 中获取位图?
从 imageview 获取位图:
imageview.buildDrawingCache();
Bitmap bm=imageview.getDrawingCache();
要将其保存在文件中:
OutputStream fOut = null;
Uri outputFileUri;
try {
File root = new File(Environment.getExternalStorageDirectory()
+ File.separator + "folder_name" + File.separator);
root.mkdirs();
File sdImageMainDirectory = new File(root, "myPicName.jpg");
outputFileUri = Uri.fromFile(sdImageMainDirectory);
fOut = new FileOutputStream(sdImageMainDirectory);
} catch (Exception e) {
Toast.makeText(this, "Error occured. Please try again later.",
Toast.LENGTH_SHORT).show();
}
try {
bm.compress(Bitmap.CompressFormat.PNG, 100, fOut);
fOut.flush();
fOut.close();
} catch (Exception e) {
}