Андроид ресурси и интернационализација

основни-водич-програмирање-андроид-5

Л ресурса они су основни део Андроид апликације. Кад год је могуће одвојићемо их од кодаНа овај начин постићи ћемо одрживију примену. Ако их добро организујемо, Андроид ће се такође побринути за избор правог елемента за нас у зависности од конфигурације - обично величине екрана и језика корисника.

Основни ресурси: слике и текстови

Л текстова морају увек бити одвојени од кода. Ако то не учинимо, више ће нас коштати одржавање кода: морали бисмо прегледати све појаве и могли бисмо заборавити неке сваки пут када морамо да извршимо промене. Најгоре од свега је што наша апликација тада неће бити интернационализована.

Због тога се не препоручује стављање текстова у код. Једини изузетак могу бити поруке које нису намењене крајњем кориснику, као што су излазне поруке конзоле. Али генерално, сви наши текстови мораће да иду на а засебна датотека ресурса. Позваћемо ту датотеку стрингс.кмл, и ваш пуни пут унутар пројекта ће бити рес / валуес / стрингс.кмл.

Датотека стрингс.кмл имаће садржај сличан овом:

<средства>низ наме = "стринг_1">тект_1
    <низ наме = "стринг_2">тект_2

Сада у нашем коду можемо да преузмемо ове текстове са реченицама попут гетРесоурцес (). ГетСтринг (Р.стринг.стринг_1) или у оквиру распореда попут @ стринг / стринг_1. На тај начин смо постигли оно што смо желели: код постаје неовисан о ресурсима.

Други ресурс који ћемо редовно користити биће лик. За ово имамо неколико директоријума у ​​пројекту, као што су рес / дравабле, рес / дравабле-хдпи, рес / дравабле-кхдпи и слично.

Суфикси који следе иза „нацртани“ односе се на густина екрана. Сваки Андроид уређај има густину пиксела по екрану који је груписан у неколико група:

  • лдпи (мали, к0,75)
  • мдпи (средња вредност к1)
  • хдпи (велики к1,5)
  • кхдпи (изузетно велики к2)
  • ккхдпи (изузетно велики к3)

На тај начин се може прилагодити истој слици различите густине екрана а да се не појаве деформитети. Препоручује се да се у свакој фасцикли налази копија слике, поштујући пропорције (узимајући мдпи за основу и једнак 1), мада се може користити само један од њих, а затим ће Андроид аутоматски извршити операцију поновног скалирања за други резолуције. Међутим, препоручљиво је покрити све фасцикле да бисте систему уштедели овај додатни напор.

Директоријум „који се може цртати“ неће садржати слике, користићемо га само за кмл дефиниције напредних елемената, попут селектора.

Остали ресурси

Унутар / рес директорија пројекта може ићи много више ресурса. Звукови, дефиниције боја употребљиве на сличан начин као текстови, димензије за нашу примену, стилови за наше погледе и још много тога.

За оне који су заинтересовани да сазнају више о овим ресурсима, можете се обратити званична Андроид документација.

Интернационализација на Андроиду

Са сликама са којима смо већ направили увод алтернативни систем ресурса на Андроиду: Ако имамо екран густине кхдпи (на пример Галаки С3), Андроид ће преферирати слике у директоријуму дравабле-кхдпи у односу на остале.

Овај систем се може користити за разликовање многих других конфигурација: нормалне или пејзажне оријентације, вожње или нормалног режима, ноћног или нормалног режима ... Опет, препоручујемо званична Андроид документација да знају све детаље. Већ смо разговарали о томе како да пружимо слике у складу са густином екрана, сада ћемо се фокусирати на још једну веома важну употребу наше апликације: интернационализација.

Ако желимо да наши текстови буду доступни на више језика, мораћемо да додамо другачији фолдер за сваку копију датотеке стрингс.кмл. Стога, ако желимо да своју апликацију пренесемо на енглески и француски језик, имали бисмо ове три директоријуме:

  • рес / вредности (подразумеване вредности)
  • рес / валуес-ср
  • рес / валуес-фр

Односно, у директоријум се додаје суфикс са ИСО кодом одређеног језика, а подразумевани текстови ћемо у њему оставити без суфикса. Ово последње је веома важно, јер осим густине екрана, увек морамо дати и Задана вриједност за све ресурсе. Када нам затреба ресурс било које врсте, Андроид ће потражити онај који најбоље одговара, а ако га не пронађе, можемо пронаћи неочекивана затварања апликације. Због тога увек мора постојати језик који одаберемо подразумевано и да сви ресурси имају своју подразумевану вредност.

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

Систем генерисања алтернативних ресурса је, наравно, комбинован. Пратећи везу коју смо раније назначили, видећемо којим редоследом треба да иду наставци. Ако следимо једноставан пример који наводимо у овом упутству, могли бисмо да помислимо да имамо слике које су само за енглеску верзију. То се постиже стварањем директоријума рес / дравабле-ен-кхдпи или било које друге густине екрана која нам је потребна. На тај начин можемо пружити широк спектар ресурса и не морамо бринути око избора правог. Наравно: не заборављајући да је густина екрана једини модификатор који не треба подразумеване вредности. Свима осталима је потребна подразумевана вредност или ризикујемо пад апликације.


Сте заинтересовани:
Како уклонити вирусе на Андроиду
Пратите нас на Гоогле вестима

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

Ваша емаил адреса неће бити објављена. Обавезна поља су означена са *

*

*

  1. Одговоран за податке: Ацтуалидад Блог
  2. Сврха података: Контрола нежељене поште, управљање коментарима.
  3. Легитимација: Ваш пристанак
  4. Комуникација података: Подаци се неће преносити трећим лицима, осим по законској обавези.
  5. Похрана података: База података коју хостује Оццентус Нетворкс (ЕУ)
  6. Права: У било ком тренутку можете ограничити, опоравити и избрисати своје податке.