Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Dive Into Android. Ресурсы и локализация

Dive Into Android. Ресурсы и локализация

Alex Korovyansky

October 06, 2013
Tweet

More Decks by Alex Korovyansky

Other Decks in Programming

Transcript

  1. 4 Ресурсы приложения • Графика и аудио • Строки •

    Разметка интерфейса пользователя • Стили • Анимации • ...
  2. 5 Подход к ресурсам • Ресурсы должны быть отделены от

    кода! • Преимущества: • Разделение обязанностей программиста и дизайнера • Каждый занимается своим делом • Код становится компактней и понятней • Возможность предоставления альтернативных ресурсов • Данный подход используется в большинстве современных графических фреймворков
  3. 6 Предоставление ресурсов • Каждый конкретный тип ресурсов должен быть

    помещен в соответствующую подпапку res animator/ xml c описанием анимаций color/ xml со state-list для цвета drawable/ картинки или state-list для картинок layout/ xml с разметкой интерфейса пользователя menu/ xml c описанием меню (элементов actionbar) raw/ произвольные файлы values/ xml определяющий простые типы (строки, массивы, размеры, стили, цвета) xml/ произвольные xml файлы
  4. 8 Доступ к ресурсам в коде • На основе ресурсов

    автоматически создается файл R.java, класс R из которого нужно использовать для доступа к ресурсам в коде // Background для текущего экрана из drawable ресурса getWindow().setBackgroundDrawableResource(R.drawable.my_background_image) ; // Конкретный layout для текущего экрана setContentView(R.layout.main_screen); // In-animation для слайдера из animation ресурса mFlipper.setInAnimation(AnimationUtils.loadAnimation(this, R.anim.hyperspace_in)); // Текст для TextView из string ресурса TextView msgTextView = (TextView) findViewById(R.id.msg); msgTextView.setText(R.string.hello_message);
  5. 9 Доступ к ресурсам в xml • Доступ к ресурсам

    внутри самих ресурсов делается с помощью следующего синтаксиса: @[<package_name>:]<resource_type>/<resource_name> ... <EditText ... android:textColor="@color/opaque_red" android:text="@string/hello" /> ... <EditText ... android:textColor="@android:color/secondary_text_dark" android:text="@string/hello" />
  6. 10 Стандартные ресурсы • Фреймворк Android содержит большое количество различных

    ресурсов • Во многих ситуациях лучше использовать стандартные ресурсы • Доступ в коде: • Доступ в xml: ... editText.setBackgroundResource(android.R.drawable.editbox_background); ... <EditText ... android:textColor="@android:color/secondary_text_dark"/>
  7. 12 Альтернативные ресурсы • Задаются путем добавления модификаторов к имени

    подпапки res • drawable-hdpi, drawable-en-port, values-ru • Альтернативные ресурсы выбираются в Runtime в зависимости от конфигурации • Описание алгоритма отбора и пример - http://d.android.com/guide/topics/ resources/providing-resources.html
  8. 13 Локализация • Предоставление альтернативных строковых ресурсов для поддерживаемых языков

    • res/values/strings.xml: <resources> <string name="hello_world">Hello world!</string> ... </resources> • res/values-ru/strings.xml <resources> <string name="hello_world">Привет мир!</string> ... </resources>
  9. Ресурсы включают в себя: графику, аудио, разметку интерфейса пользователя, стили,

    строки и др. В Android ресурсы отделяются от кода, Вы пишете код, а дизайнер рисует графику. Предоставьте альтернативные ресурсы, и Ваше приложение будет отлично выглядеть на различных устройствах Резюме 15