Как создать приложение для Android, поддерживающее несколько размеров экрана

Я просматриваю некоторые руководства и учебники, но моя проблема все еще существует. Я разрабатываю это приложение, используя небольшое изображение для создания кнопки, текста и фона, и помещаю его в каталог res/drawable-ldpi. Затем я вижу в Интернете, что мне нужно сделать изображения с такой пропорцией: 3:4:6. Поэтому, если мои изображения были маленькими, чтобы создать их для среднего размера экрана, я должен взять размер маленького изображения и кратный 4/3, а для большого экрана кратный 6/3 = 2. Я вижу их здесь: Предоставление ресурсов. Теперь, когда я создаю только несколько изображений для обычного экрана (среднего), я запускаю эмулятор с плотностью экрана 160 или 200, но изображение остается тем, что используется в ldpi. Что я могу сделать? Можете ли вы объяснить мне, в чем проблема с этими несколькими экранами и как это решить? Это часть моего манифеста Android:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="spazio.digitale.com" android:versionCode="1"
android:versionName="1.0" android:installLocation="auto"
android:screenOrientation="portrait"
>
<uses-sdk android:minSdkVersion="7" android:maxSdkVersion="11" />
<uses-permission android:name="android.permission.INTERNET" />
<supports-screens android:normalScreens="true"
    android:smallScreens="true" android:largeScreens="true"
    android:anyDensity="true" />

person JackTurky    schedule 13.10.2011    source источник
comment
вы видели это: stackoverflow.com/questions/5739353/   -  person Hanry    schedule 13.10.2011
comment
да! Я отредактировал основной пост с манифестом Android   -  person JackTurky    schedule 13.10.2011


Ответы (3)


использовать для масштабирования пикселей для дизайна.. поместите это в манифест

<supports-screens
android:largeScreens="true"
android:normalScreens="true"
android:smallScreens="true"
android:anyDensity="true"
/>
person Jigar Patel    schedule 13.10.2011
comment
смотрите основной пост! я прикрепляю манифест Android, это поле все еще существует в моем манифесте - person JackTurky; 13.10.2011

Для кнопки создайте изображения с помощью инструмента 9-patch.

person Paresh Mayani    schedule 13.10.2011

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

Кроме того, вы, кажется, путаете плотность экрана с размером экрана. Пока не беспокойтесь о размере экрана (если только у вас нет одного фонового изображения, занимающего весь экран, в чем я сомневаюсь). И нет, упомянутое вами соотношение не имеет ничего общего с размерами экрана, оно относится только к плотности экрана. Решите проблему с плотностью в первую очередь. Затем, как только это будет исправлено, вы можете сосредоточиться на том, чтобы макет соответствовал размеру.

И даже не заморачивайтесь с ldpi, это всего 0,2% рынка телефонов. Вы просто тратите время на оптимизацию для этой плотности.

person Stephan Branczyk    schedule 13.10.2011
comment
я уже сделал для этого размера экрана! но проблема в том, что эмулятор, и я думаю, что устройство тоже не берет изображение из drawable-mdpi e drawable-hdpi, но все еще в drawable-ldpi - person JackTurky; 13.10.2011
comment
и очистите свой код, чтобы убедиться, что ресурсы не кэшируются - person Stephan Branczyk; 13.10.2011
comment
Итак, вот пример моего макета: ‹?xml version=1.0 encoding=utf-8?› ‹LinearLayout xmlns:android=schemas.android.com/apk/res/android android:orientation=vertical android:layout_width=match_parent android:layout_height=match_parent android:background=@drawable/sfondo› как вы можете видеть я использую фоновое изображение. поэтому я должен установить макет, чтобы он был универсальным для всех размеров экрана, а затем сделать изображение с другим размером, чтобы оно соответствовало разным размерам экрана, верно? - person JackTurky; 13.10.2011
comment
также дайте мне размеры ваших изображений для каждой плотности, я хочу убедиться, что математика работает. - person Stephan Branczyk; 13.10.2011
comment
низкий = 180x31, средний = 240x49, высокий = 360x62, не все изображения имеют одинаковый размер: P это только пример - person JackTurky; 13.10.2011
comment
Да, верно. Но сначала разработайте решение без самого большого фонового изображения, затем, как только плотность будет определена с меньшими изображениями, вы можете работать с самым большим изображением. - person Stephan Branczyk; 13.10.2011
comment
давайте продолжим обсуждение в чате - person Stephan Branczyk; 13.10.2011
comment
можно ли использовать чат? я вернусь через 5 минут, кофе и я здесь - person JackTurky; 13.10.2011