#android #android-screen
#Android #android-экран
Вопрос:
Я хочу разработать приложение для Android, которое может работать на всех телефонах Android с типом экрана. Итак, мой вопрос:
Можно ли хранить все ресурсы изображения только в папке HDPI? Или мне понадобятся все 3 типа ресурсов LDPI, MDPI И HDPI?
Если я использую относительный макет для разработки этого приложения, что произойдет с изображениями, на которых есть текст (фоновое изображение кнопки _, на котором будет текст «Отправить»). Android будет масштабировать изображение в соответствии с экраном устройства, но способен ли он соответствующим образом масштабировать текст?
Пожалуйста, подскажите мне, как справиться с этой проблемой.
Как создать приложение, которое может работать на всех телефонах Android с экраном любого типа?
Ответ №1:
Чтобы разработать приложение для Android с поддержкой нескольких экранов, вы должны вкратце ознакомиться с этим руководством: поддержка нескольких экранов Android
В сути ваших вопросов:
1. Конкретный ресурс в drawable автоматически берется в зависимости от плотности. Таким образом, вы должны размещать определенные изображения в mdpi, hdpi, ldpi соответственно.
2. Прочитайте и поймите значения тегов экрана поддержки манифеста:
<supports-screens android:smallScreens="true"
android:resizeable="true" android:largeScreens="true"
android:anyDensity="true" android:normalScreens="true"></supports-screens>
3. Текст должен быть изменен:
Вы должны использовать стили, тогда у вас могут быть отдельные папки «значения» (по умолчанию) «значения-hdpi» (высокая плотность) «значения-mdpi» (средняя плотность) и так далее, и при необходимости поместите свой файл стиля с правильными значениями textSize в каждую папку.
Затем, когда вы находитесь на устройстве средней плотности, он выберет файл в папке «значения-mdpi», если он существует, или в «значениях», если нет, и то же самое для высокой плотности и т. Д…
Этот же принцип применяется ко всем вложенным папкам «res» (чертежи, значения и т. Д.)
Или просто, если не использовать стили, просто используйте dp
вместо размера sp
текста.
Ответ №2:
Если вы помещаете изображения только в папку HDPI, это будет работать. но в идеале вы должны размещать изображения в соответствии с плотностью. кроме того, если вы используете изображение 9 patches на фоне кнопки, Android растягивает изображения в соответствии с требованиями, однако, если в каком-то случае вы обнаружите, что изображение растягивается неправильно, вы можете использовать отдельные изображения для альбомного и портретного режимов.
Ответ №3:
Если я использую относительный макет для разработки этого приложения, что произойдет с изображениями, на которых есть текст (например, фоновое изображение кнопки, на котором будет текст «Отправить»). android будет масштабировать изображение в соответствии с экраном устройства, но способен ли он соответствующим образом масштабировать текст?
=> Если вы хотите предоставить масштабируемые изображения, которые можно автоматически сжимать / растягивать в соответствии с размером экрана, тогда есть инструмент с 9 патчами, с помощью которого вы можете создать масштабируемое изображение, и после этого вам не нужно беспокоиться о размере экрана и плотности экрана.
Вот хороший пример: http://www.dibbus.com/2011/03/9patch-images-in-android /
Вот также хорошая статья и руководство по созданию образа с 9 исправлениями: http://radleymarx.com/blog/simple-guide-to-9-patch /