imageViewのビットマップを取得することは可能ですか?
これを試しましたが、NullPointerExceptionが発生し、編集したコードがmonodroidで機能しません
imageViewのビットマップを取得することは可能ですか?
これを試しましたが、NullPointerExceptionが発生し、編集したコードがmonodroidで機能しません
ご回答有難うございます。最後に私はそのようにそれをしました:
var imageView = FindViewById<ImageView>(Resource.Id.image);
Bitmap bmp = ((BitmapDrawable)imageView.Drawable).Bitmap;
ps:imageViewが別のビューにあったため、NullPointerExceptionが発生しました。
Drawableプロパティを介して割り当てられた画像にアクセスできるはずです。アクセスする前に、必ずnullを確認してください。
これが私が使っている実例です。
view.setDrawingCacheEnabled(true);
view.buildDrawingCache();
Bitmap save = view.getDrawingCache();
どこにview
ありImageView
、それを保存しようとしている場合。これが、imageviewからビューを取得して名前を付けて保存するための保存方法です。.PNG
void Save() {
if (null != view.getDrawable()) {
view.setDrawingCacheEnabled(true);
view.buildDrawingCache();
save = view.getDrawingCache();
final File myDir = new File(folder);
myDir.mkdirs();
final Random generator = new Random();
int n = 10000;
n = generator.nextInt(n);
final String fname = "StyleMe-" + n + ".png";
file = new File(myDir, fname);
if (file.exists())
file.delete();
try {
final FileOutputStream out = new FileOutputStream(file);
save.compress(Bitmap.CompressFormat.PNG, 100, out);
out.flush();
out.close();
sendBroadcast(new Intent(Intent.ACTION_MEDIA_MOUNTED,
Uri.parse("file://"
+ Environment.getExternalStorageDirectory())));
Toast.makeText(getApplication(), "Image Saved",
Toast.LENGTH_SHORT).show();
} catch (final Exception e) {
Toast.makeText(getApplication(),
"Something Went Wrong check if you have Enough Memory",
Toast.LENGTH_LONG).show();
}
} else {
final Toast tst = Toast.makeText(getApplication(),
"Please Select An Image First", Toast.LENGTH_LONG);
tst.setGravity(Gravity.CENTER, 0, 0);
tst.show();
}
view.setDrawingCacheEnabled(false);
}
これが私の変数です。
String folder = "/sdcard/Pictures/StyleMe";
static File file;