Android ресурси и интернационализация

basic-guide-programming-android-5

Лос средства те са основна част от приложение за Android. Когато е възможно ние ще ги отделим от кода, по този начин ще постигнем по-поддържаемо приложение. Ако ги организираме добре, Android също ще се погрижи за избора на подходящия за нас елемент в зависимост от конфигурацията - обикновено размера на екрана и езика на потребителя.

Основни ресурси: изображения и текстове

Лос текстове те винаги трябва да бъдат отделени от кода. Ако не го направим, ще ни струва повече да поддържаме кода: ще трябва да прегледаме всички събития и бихме могли да забравим някои всеки път, когато трябва да правим промени. Най-лошото от всичко е, че тогава нашето приложение няма да бъде интернационализиращо се.

Поради това не се препоръчва да поставяте текстове в кода. Единственото изключение могат да бъдат съобщения, които не са предназначени за крайния потребител, като например изходни съобщения на конзолата. Но като цяло всички наши текстове ще трябва да отидат в a отделен ресурсен файл. Ще извикаме този файл strings.xml, и пълният ви път в рамките на проекта ще бъде res / values ​​/ strings.xml.

Файлът strings.xml ще има съдържание, подобно на това:

<ресурси>низ name = "низ_1">текст_1
    <низ name = "низ_2">текст_2

Сега в нашия код можем да извлечем тези текстове с изречения като getResources (). GetString (R.string.string_1) или в нашите оформления като @ string / string_1. По този начин постигнахме това, което искахме: кодът става независим от ресурсите.

Другият ресурс, който ще използваме редовно, ще бъде образност. За това имаме няколко папки в рамките на проекта, като res / drawable, res / drawable-hdpi, res / drawable-xhdpi и други подобни.

Суфиксите, които следват "чертаеми", се отнасят до плътност на екрана. Всяко устройство с Android има плътност на пикселите на екран, което е групирано в няколко групи:

  • ldpi (малък, x0,75)
  • mdpi (средно x1)
  • hdpi (голям x1,5)
  • xhdpi (много голям x2)
  • xxhdpi (изключително голям x3)

По този начин може да се адаптира едно и също изображение различна плътност на екрана без да се появяват деформации. Препоръчително е във всяка папка да има копие на изображението, като се спазват пропорциите (като mdpi е като основа и е равно на 1), въпреки че можете да използвате само един от тях и тогава Android автоматично ще извърши операция за преоразмеряване на други резолюции. Препоръчително е обаче да покриете всички папки, за да спестите на системата това допълнително усилие.

Папката "с възможност за изтегляне" няма да съдържа изображения, ние ще я използваме само за xml дефиниции на разширени елементи, като селектори.

Други ресурси

В директорията / res на проекта могат да отидат много повече ресурси. Звуци, дефиниции на цветове, използваеми по подобен начин на текстовете, размери за нашето приложение, стилове за нашите възгледи и много други.

За тези, които се интересуват да научат повече за тези ресурси, можете да се консултирате официалната документация за Android.

Интернационализация на Android

С изображенията, към които вече направихме въведение алтернативна ресурсна система на Android: Ако имаме екран с плътност xhdpi (този на Galaxy S3 например), Android ще предпочете изображенията в директорията drawable-xhdpi пред останалите.

Тази система може да се използва за разграничаване на много други конфигурации: нормална или пейзажна ориентация, шофиране или нормален режим, нощен или нормален режим ... Отново препоръчваме официалната документация за Android за да знаете всички подробности. Вече говорихме за това как да предоставяме изображения според плътността на екрана, сега ще се съсредоточим върху друго много важно приложение за нашето приложение: интернационализация.

Ако искаме текстовете ни да бъдат достъпни на няколко езика, ще трябва да добавим различна папка за всяко копие на файла strings.xml. По този начин, ако искаме да прехвърлим приложението си на английски и френски, ще имаме следните три директории:

  • res / стойности (стойности по подразбиране)
  • res / values-en
  • res / values-fr

Тоест, към папката се добавя суфикс с ISO кода на конкретния език и ние ще оставим текстовете по подразбиране в папката без суфикс. Последното е много важно, тъй като с изключение на плътността на екрана, ние винаги трябва да дадем a стойност по подразбиране за всички ресурси. Когато се нуждаем от ресурс от какъвто и да е вид, Android ще потърси най-подходящия и ако не намери такъв, можем да намерим неочаквани затваряния на приложението. Ето защо винаги трябва да има език, който да избираме по подразбиране, и всички ресурси да имат стойността си по подразбиране.

По този начин отново получаваме това, което сме искали: освен че сме отделили текстовете от кода, вече можем да имаме и приложение на различни езици без изобщо да докосваме нашия код.

Системата за генериране на алтернативни ресурси е, разбира се, комбинируема. Следвайки връзката, която сме посочили преди, ще видим в какъв ред трябва да вървят суфиксите. Ако следваме простия пример, който посочваме в този урок, бихме могли да помислим да имаме изображения, които са само за английската версия. Това се постига чрез създаване на папка res / drawable-en-xhdpi или друга плътност на екрана, от която се нуждаем. По този начин можем да предоставим голямо разнообразие от ресурси и да не се притесняваме дали да изберем правилния. Разбира се: без да забравяме, че плътността на екрана е единственият модификатор, който не се нуждае от стойности по подразбиране. Всички останали се нуждаят от стойност по подразбиране или рискуваме приложението да се срине.


Интересувате се от:
Как да премахнете вируси на Android
Следвайте ни в Google Новини

Оставете вашия коментар

Вашият имейл адрес няма да бъде публикуван. Задължителните полета са отбелязани с *

*

*

  1. Отговаря за данните: Actualidad Blog
  2. Предназначение на данните: Контрол на СПАМ, управление на коментари.
  3. Легитимация: Вашето съгласие
  4. Съобщаване на данните: Данните няма да бъдат съобщени на трети страни, освен по законово задължение.
  5. Съхранение на данни: База данни, хоствана от Occentus Networks (ЕС)
  6. Права: По всяко време можете да ограничите, възстановите и изтриете информацията си.