Вопрос по android – Поддержка Android Multiscreen в Android: 540x960 проблема

4

Мое приложение поддерживает 3 типа плотности ldpi (120), mdpi (160), hdpi (320) и для этого у нас есть три папки для ресурсов (ldpi, mdpi, hdpi).

Но моя проблема возникает в HTC Sensation XE (540x960) с плотностью ~ 256 dpi. И мои ресурсы растягиваются.

В файле манифеста

<supports-screens android:xlargeScreens="false" /> 

означает, что я не поддерживаю экран xlarge, поэтому 540x960 имеет высокую плотность ?? Как я могу преодолеть эту проблему ???

Проблема поддержки Android Multiscreen говорит & quot;You can also use a combination of density and size qualifiers but that still leaves some room for two different resolutions falling into the same bucket.& Quot;

Какое имя должно быть у папки drawble для такого разрешения? или есть какой-либо другой способ, чтобы замкнуть эту проблему.

EDIT :  Моя проблема не с макетом, моя проблема 540x960 в HDPI, но мои hdpi-рисунки связаны с 480x800

Помоги мне..

Заранее спасибо..

Чтобы сделать макет специально для устройств 540x960, используйте это решение:stackoverflow.com/a/10931395 user2129417

Ваш Ответ

3   ответа
2

что вы разработали свои растровые изображения для определенного размера экрана, а не плотности экрана.

Проще говоря, выshould not do that, Существует огромное количество различных форм-факторов и размеров экрана, и вы не можете надеяться, что размер графики будет соответствовать всем им. Таким образом, вы исправили эту проблему для экранов 540x960 ... что тогда с вашими пользователями, которые используют дисплеи с разрешением 480x854 (большинство устройств Motorola с разрешением HDMI)? Будете ли вы включать другую графику для дисплеев 1024x720 и 1280x720, если вы разрабатываете для этого? А как насчет 1280x800?

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

Когда вы разрабатываете приложение для Android, вы должны думать о дизайне так, как если бы вы проектировали веб-сайт, а не программу для настольного компьютера (или IOS). Все (или большинство) приемов, которые вы используете для разработки веб-сайта, также применимы и здесь - плюс у вас есть инструменты для определения плотности и 9.patch.

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

Редактировать:

Как я уже упоминал выше, ядро гибкого дизайна пользовательского интерфейса в Android - думать о вашем приложении как о веб-сайте. У Романа Нурика есть статья, обсуждающая это в блоге Android.

http://android-developers.blogspot.com/2011/09/thinking-like-web-designer.html

Кроме того, он в основном покрыт сайтом Android и т. Д.

http://developer.android.com/training/multiscreen/index.html

Использование правильных макетов и изображений с 9 патчами (не всегда - иногда статические изображения лучше) позволит вам создавать дизайны, которые хорошо смотрятся на всех телефонах. Но вы должны понимать, что, как и веб-сайт, разработанный в браузере, вы не можете и не можете иметь 100% контроль над тем, как все отображается на каждом устройстве. Что вам нужно сделать, так это то, что он по-прежнему доступен и хорошо выглядит даже при отображении на устройстве, которое вы не ожидали заранее.

Там нет мастер способ сделать это; все зависит от вашего конкретного дизайна и от того, как вы хотите этого достичь. Но я ссылаюсь на статью Нурика по теме прошлого года.
Можете ли вы сказать мне больше (для моего дальнейшего применения) .. Есть так много устройств с разными разрешениями и поставляется в формате hdpi (Большие экраны не в xlarge экране), то для этого, как я могу обрабатывать Drawable для всех устройств HDDP. Все устройства имеет те же ресурсы, которые можно извлечь, и это hdpi. Каков основной путь ??? Bhavesh Hirpara
480x854 - это то же самое, что и 480X800, так что это не проблема ... и во-вторых, мы не поддерживаем очень большой экран. Проблема только для 540x960 и только для некоторых элементов рисования. Bhavesh Hirpara
Принцип остается тем же самым; проектирование приложения таким способом - плохая идея для Android. А выбор удаленных дисплеев xlarge не защитит вас от решения этой проблемы с экранами нескольких размеров. Galaxy Nexus имеет экран 1280x720. Galaxy Note работает 1280x800. Есть 7 & quot; планшеты с экранами 1024х720. Ни один из этих дисплеев не будет считаться большим.
6

on XE (540x960):

res/layout-w540dp-h960dp/layout.xml 

это будет использоваться для выбора макета для этого устройства, а для рисования он будет выбирать изображение из hdpi, потому что на этом сайте разработчика 256 dp входят в диапазон hdpi.http://developer.android.com/guide/practices/screens_support.html.

Надеюсь, что это поможет вам.

Я согласен с вашим утверждением, но моя проблема не в макетах, потому что мои макеты почти одинаковы для всех разрешений, проблема отрисовываема. Сенсация HTC имеет диапазон hdpi, но мои hdpi рассчитаны на 480x800, что не соответствует 540x960 в все это растянуто. Bhavesh Hirpara
Прошлой ночью я много думал об этой проблеме, некоторые ресурсы drawbles очень статичны и не могут быть сделаны 9 patch., Потому что они очень статичны. Это может быть серьезной проблемой. :( Bhavesh Hirpara
res / layout-w540dp-h960dp / layout вы уверены, что это работает. потому что я создаю AVD для HTC Sensation с разрешением 540X960 точек на дюйм. Но это требует макета от & quot; layout & quot; папка не из этого.
Какая у вас версия HTC Sensation для Android OS?
Я думаю, вам может понадобиться использовать патч .9, которые могут использоваться как для 480x800, так и для 540x960.
1

экрана. Расчет здесь ...

dpi = sqrt (540 ^ 2 + 960 ^ 2) / 4,3 "(размер устройства) = ~ 256 dp = px / (dpi / 160) = 540 / (dpi / 160) = 330

Drawable будет назван drawable-sw330dp. Я проверил это. И это хорошо работает. Никаких проблем с другими чертежами тоже нет. Макет будет layout-sw330dp

Или вы можете попробовать это по drawable-sw540p. Я еще не проверял это. Но я думаю, это будет хорошо работать. Макет будет layout-sw540p

DisplayMetrics displayMetrics = new DisplayMetrics (); . GetWindowManager () getDefaultDisplay () getMetrics (displayMetrics). Log.e (& Quot; TAG & Quot;, & Quot; displayMetrics.density = & Quot; + displayMetrics.density + & Quot;, displayMetrics.densityDpi = & Quot; + displayMetrics.densityDpi + & Quot;, displayMetrics.scaledDensity = & Quot; + displayMetrics.scaledDensity) ; displayMetrics.densityDpi дает что-то отличное от калькуляции,

Похожие вопросы