Я пытаюсь показать изображение в максимальном разрешении. Пока я работаю над своим приложением, но то, что я делаю, является временным.Как рассчитать максимальный видимый размер изображения
private Bitmap loadImage() {
String imgName=resolveImageName();
if(!imgName.equals("")){
String imgN=Environment.getExternalStorageDirectory().getAbsolutePath()+ImageChooserActivity.GENFACE_PATH+imgName;
Log.d("LOAD IMAGE", imgN);
BitmapFactory.Options op = new BitmapFactory.Options();
op.inSampleSize = 2;
Bitmap bm = BitmapFactory.decodeFile(imgN, op);
return bm;
}
return null;
Я попытался вычислить inSamplesize используя следующий код, но я всегда получаю 1, и это не является допустимым значением. Максимальное значение для изображения, которое я использую для inSampleSize 2 (разрешение 2048x2048 изображения, максимальное поддерживаемое разрешение 1944x2592 так де размер изображения изменяется до 1/2 972x1296)
private int calculateInSampleSize(BitmapFactory.Options options){
DisplayMetrics dm = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(dm);
int maxHeight = dm.heightPixels;
int maxWidth = dm.widthPixels;
int photoHeight=options.outHeight;
int photoWidth=options.outWidth;
int inSampleSize = 1;
if (photoHeight > maxHeight || photoWidth > maxWidth) {
final int halfHeight = photoHeight/2;
final int halfWidth = photoWidth/2;
// Calculate the largest inSampleSize value that is a power of 2 and keeps both
// height and width larger than the requested height and width.
while ((halfHeight/inSampleSize) > maxHeight
&& (halfWidth/inSampleSize) > maxWidth) {
inSampleSize *= 2;
}
}
System.out.println("inSampleSize: "+inSampleSize);
return inSampleSize;
}
Мне нужно вычислить это для того, чтобы получить мое приложение работает на разных экранах, заблаговременно, спасибо за помощь
Я отлаживать его, первое, что я получил, как MaxHeight 1184 и максимальная ширина = 720. Но я знаю, что это 1944x2592, потому что, когда я пытался показать изображение без выполнения rezise, у меня была ошибка и максимальное разрешение. Итак, как я могу получить разрешение? btw: спасибо за быстрый ответ – xuandl