2012-04-28 1 views
0

его простые сомнения. Приложение имеет 4 каталога (ldpi, mdpi, hdpi, xhdpi) с одинаковыми изображениями, но с разными значениями dpi. Для mdpi 160dpi, один im с использованием atm.dpi для скачивания

Что происходит с изображениями, которые я загружаю из Интернета? У меня есть читатель новостей, и это означает, что у каждого нового есть хотя бы одно изображение. И я хочу иметь достойный образ для всех смартфонов.

Нужны ли мне разные типы изображений или просто загружаются одинаково для всех? Могу ли я узнать, какое разрешение лучше всего подходит для каждого конкретного смартфона?

Я не мог найти «официальный» способ справиться с этим, поэтому я не знаю, являются ли его важные dpi для изображений, которые мы планируем загрузить.

С уважением!

ответ

2

ldpi означает ~ 120dpi, MDPI означает ~ 160dpi, ИПЧР означает ~ 240dpi. xhdpi означает ~ 320dpi. вы можете следить за соотношением 3: 4: 6: 8 для ldpi: mdpi: hdpi: xhdpi для ресурсов.

Теперь у вас могут быть разные изображения для всего разрешения, и это не должно быть проблемой. Если у вас нет разных изображений для всех, у вас есть изображение для xhdpi и времени выполнения, вы можете изменить размер изображения в зависимости от разрешения экрана.

Вы можете использовать ниже образец кода, чтобы узнать разрешение экрана во время выполнения ::

DisplayMetrics metrics = new DisplayMetrics(); 
getWindowManager().getDefaultDisplay().getMetrics(metrics); 
switch (metrics.densityDpi) { 
case 120: 
    //your stuff 
break; 
case 160: 
    ////your stuff 
    break; 
case 240: 
    ///your suff 
    break; 
case 320: 
    //your stuff 
    break; 
} 

образца кода, чтобы изменить размер точечного рисунка ::

Bitmap mIcon_val = your bitmap; 
Matrix matrix = new Matrix(); 
matrix.postScale((float)newwidth/mIcon_val.getWidth(), (float)newheight/mIcon_val.getHeight()); 
Bitmap resizedBitmap = Bitmap.createBitmap(mIcon_val, 0, 0, mIcon_val.getWidth(), mIcon_val.getHeight(), matrix, true); 

теперь у вас есть новая растровая новая ширина и высоту вы можете использовать.

+0

, так что metrics.densityDpi даст мне правильную плотность телефона? милая. Я предпочитаю загружать нужный dpi, так как он будет быстрее и меньше потребляемой памяти. Вопрос: переключатель не подходит для правильной памяти? по крайней мере, если меньше потребляет то, что я читаю. –

+0

Да, вы можете переключиться на логику. как использовать –

0

Если вы хотите построить отличное приложение, вам нужно управлять каждым изображением, чтобы он соответствовал нужному смартфону, он не выглядит красивым, если вы загружаете одно и то же изображение для всех.

Для получения дополнительной информации перейдите: Supporting Multiple Screens

+0

Как я знаю, какие dpi для каждого телефона? im говорит о коде, чтобы узнать разрешение экрана или что-то в этом роде. –