Я борюсь с тем, чтобы мои макеты были настроены и подхвачены Android.
создать тестовую программу, с этими каталогами ресурсов:Как заставить Android выбирать разные макеты на основе размера экрана
- расположения
- макет большого
- расположение нормального
- макет небольшой
- макета sw600dp
- макетом sw720dp
- макет-w600dp
- макет-w720dp
- макет XLarge
Они в основном содержат один и тот же файл макета, единственное отличие состоит в том, что один вид текста просто имеет содержание имени каталога раскладки:
<android.support.v7.widget.AppCompatTextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/btnTest"
android:text="Layout xxxxx" />
Моя проблема заключается в том, что независимо от того, какой AVD я создаю, все они пишут файл нормального макета. Вот что AVD-х я испытал, и выход этого отлаживать код:
Configuration config = getResources().getConfiguration();
String sizeName = getSizeName(this);
Log.d(TAG, String.format("screen config smallestScreenWidthDp:%d screenWidthDp:%d densityDpi:%d sizeName: %s" ,
config.smallestScreenWidthDp, config.screenWidthDp, config.densityDpi, sizeName)); //NON-NLS
- Nexus 6P, 1440x2560, 518ppi:
- smallestScreenWidthDp: 360 screenWidthDp: 360 densityDpi: 640 sizeName: нормальный
- Galaxy S4 мини, 4,3" 540x960, 256ppi:
- smallestScreenWidthDp: 360 screenWidthDp: 360 densityDpi: 240 sizeName: нормальный
- Wiko Гоа, 3.5" 320х480, 165 PPI:
- smallestScreenWidthDp: 320 screenWidthDp: 320 densityDpi: 160 sizeName: нормальный
Что я делаю неправильно?
EDIT: Это не проблема с AVD, я получаю такое же поведение на физических устройствах; мое приложение выбирает нормальную раскладку как на устройствах Nexus 6P (1440x2560, 518ppi), так и на устройстве Wiko GOA (320x480, 165 пикселей).
Вот мой test project для справки.
Пожалуйста, попробуйте эту метку DisplayMetrics = getResources(). GetDisplayMetrics(); –
имя ваши большие, нормальные и маленькие папки для sw обозначения также. Не смешивайте оба соглашения об именах вместе –
@ M.S.P, так что я должен делать с этим? DisplayMetrics.densityDpi возвращает то же значение, что и мой другой выход журнала. –