Изменение размера изображения для XXHDPI

У меня есть изображение, которое отображается идеально для MDPI. Его разрешение 191 x 255.

Затем я изменяю его размер до XXDPI, используя пропорцию 1:3, 573 x 765, Тем не менее, когда эмулятор отображает его, качество не так хорошо, как у MDPI. Это становится явно бедным.

В обоих случаях я использую его Wrap Content

Если я отображаю оба изображения в графическом редакторе, они имеют отличное качество. Почему это происходит? Я что-то здесь упускаю?

2 ответа

Решение
DisplayMetrics metrics = new DisplayMetrics();
getActivity().getWindowManager().getDefaultDisplay().getRealMetrics(metrics);
int widthPixels = metrics.widthPixels;
int heightPixels = metrics.heightPixels;
float widthDpi = metrics.xdpi;
float heightDpi = metrics.ydpi;
float widthInches = widthPixels / widthDpi;
float heightInches = heightPixels / heightDpi;
double diagonalInches = Math.sqrt((widthInches * widthInches) + (heightInches * heightInches)); // this code returns the actual screen size (eg. 7,8,9,10 inches in double format ex: 7.932189832)
diagonalInches = (double) Math.round(diagonalInches * 10) / 10; // round up to first decimal places

ArrayList<Integer> imageId = new ArrayList<>();
imageId.clear();

for (Integer i : imageNum){ // uses loop since im using TransitionDrawable to change images in single view
    String stringID;
    if (isPortrait) {
        stringID = "featured_img_" + i.toString() + "_port"; // portrait images
    } else {
        if (diagonalInches >= 7 && diagonalInches <=8){
            stringID = "featured_img_" + i.toString() + "_land_b"; // landscape images this is the drawable filename
        } else {
            stringID = "featured_img_" + i.toString() + "_land_a"; //landscape images this is the drawable filename
        }
    }
    int drawableId = getResId(stringID);
    imageId.add(drawableId); // adding it to arraylist
}

Вы можете добавить android:scaleType=" . . . " на то, что вы хотите, чтобы ваше изображение отображалось

Другие вопросы по тегам