2013-03-12 5 views
0

Я работаю над приложением для Android. Я использовал другую папку макета. Подобно макету, макет-большой, макет-xlarge. Чтобы он мог настраиваться для всех разрешений. Но я динамически настраиваю изображения в действии. Как я могу изменить их в соответствии с разрешением экрана? Как слишком большое изображение заменит меньшее, если мы изменим разрешение?Как изменить изображение по разрешению?

ответ

1

Android работает с плотными ковшиками, которые идут от l (низкий) до xx (дополнительно) h (высокий).

Вы хотите создать разные версии ваших изображений в папках, как

  • вытяжки-ldpi
  • вытяжка-MDPI
  • вытяжка-ИПЧР
  • вытяжки-xhdpi
  • и рисуют-xxhdpi если вы хотите поддерживать Nexus 10.

Это довольно свободно от макетов больших папок, которые позволяют вам определять разные макеты для разных размеров.

2 довольно разные вещи, о которых вы можете узнать больше о screen practices in Android.

======= Редактировать; Кажется, это не совсем вопрос.

Если вы делаете это «правильно», система Android выберет для вас правильное изображение, даже если вы добавляете их динамически (вы все равно можете вызвать R.drawable.my_image из java-кода).

Если по какой-то причине вам нужно выбрать, вы можете просто проверить текущую плотность с чем-то вроде (немного устаревшим);

public String getDensity() { 
    String density; 
    DisplayMetrics dm = new DisplayMetrics(); 
    getWindowManager().getDefaultDisplay().getMetrics(dm); 
    // will either be DENSITY_LOW (120) , DENSITY_MEDIUM (160) or 
    // DENSITY_HIGH (240) 
    switch (dm.densityDpi) { 
    case 120: 
     density = "ldpi"; 
     break; 
    case 160: 
     density = "mdpi"; 
     break; 
    case 240: 
     density = "hdpi"; 
     break; 
    // use hdpi as default, because flurry shows this will be suited for 
    // most of our users. 
    default: 
     density = "hdpi"; 
     break; 
    } 
    return density; 
} 
+0

Я прошу, чтобы заменить изображения динамически в соответствии с разрешением экрана. если я использую размер экрана 480 * 800. то изображение должно быть заменено более крупным. – user2147892

Смежные вопросы