Anujprashar, нет простого ответа на ваш вопрос.Спецификации различных плотностей (hdpi, mdpi, ldpi) относятся только к среднему диапазону плотностей (т. Е. Hdpi составляет около 240 ppi).Однако hdpi может относиться к большому количеству разных разрешений (например, Motorola Droid - это hdpi, разрешение 480x854; Nexus One - это hdpi, разрешение 480x800).Таким образом, нет изображения фиксированного размера, которое вы можете использовать, чтобы идеально подходить для всех устройств на весь экран.
Я предлагаю, если это вообще возможно, либо избегать использования макета, который требует, чтобы изображения были точного размера экрана, либо вместо этого предоставлять изображение, превышающее большинство разрешений для этой целевой плотности (например,500x900) оставляя дополнительные поля, которые могут быть обрезаны (подумайте об этом как об обрезе, если вы знакомы с этой концепцией для печати).
Или, проще, если вы не хотите, чтобы они отображались 1: 1 при исходном разрешении в пикселях вы можете просто установить scaleType для ImageView на centerCrop
, а его ширину и высоту на fill_parent
.Это позволит расширить (или сжать) изображение, чтобы оно соответствовало контейнеру, обрезая пиксели, если соотношение сторон не является правильным.
Более сложный (и гораздо менее эффективный) метод состоит в том, чтобы иметь разные изображения для каждогоразрешение экрана и метод в вашем onCreate (), чтобы получить размеры экрана и установить изображение в соответствии с возвращаемыми значениями.