私は画像の寸法を取得する方法を見つけようとしていたので、その方法で画像をどのように拡大縮小するかを知っていました。これの目的は、これらのメモリの問題が発生しないようにすることでした。
だから私がやっていたのは:
BitmapFactory image = new BitmapFactory();
BitmapFactory.Options opts = new BitmapFactory.Options();
image.decodeFile(_path,opts);
if(opts.outHeight > 2048 || opts.outWidth > 2048){
opts.inSampleSize= 2;
}
VIEW.setImageBitmap(image.decodeFile(_path,opts));
問題は、最初のデコードで、デバイスに十分なメモリがない場合にエラーが発生することです。
私がやった方法は、それをtrycatchブロックに入れてから、ifにステートメントを追加しました。opts.outHeight == -1 || opts.outWidth == -1){
だから私が知りたかったのは、デコードであまりにも多くのメモリを消費することなく、私が望んでいたことを行う方法があるということでしたか?結局、元の画像の高さと幅を知る必要があるだけです。