2011-12-31 2 views
0

в моем приложении Я бы изменил цвет фона и текста (например, в приложении Google Sky Map вы можете установить «ночной режим», который меняет цвет фона и текста), как я могу это сделать то же самое, используя тот же макет для обоих изменений? Я бы тоже изменил текст (например, я пишу итальянские слова, и если бы это было возможно, я бы изменил его на английские слова). Может ли кто-нибудь помочь мне дать какой-нибудь учебник, пример или код? Огромное спасибо.Android - Как изменить настройки по коду

ответ

0

Вы можете программно изменить цвет текста и фона с использованием конкретных методов в элементах управления, как:

View someView = findById(R.id.someView); 
view.setBackgroundResource(R.drawable.someDrawable); 

Но это будет один на один. Вы можете создать несколько стилей, но, к сожалению настройки стиля виджета после того, как он был построен утомительно, потому что вы должны сделать отдельные вызовы так же, как вы делали выше:

View someView = findById(R.id.someView); 
(TextView) view).setTextColor(getResources().getColor(R.color.white)); 
(TextView) view).setTypeface(Typeface.DEFAULT_BOLD); 

Наконец, есть темы, которые коллекции стилей, определенные в ресурсах, которые определяют весь ваш пользовательский интерфейс. Темы могут быть установлены сразу при создании активности:

http://developer.android.com/guide/topics/ui/themes.html

Choosing a style/theme programmatically at run time

Что касается текста, вы можете легко экстернализовать текст с помощью strings.xml ресурса, и держать итальянскую версию и английскую версию , и Android будет использовать правильную версию, которая наилучшим образом соответствует языковым настройкам пользователя. Существует файл strings.xml по умолчанию, который будет использоваться, если Android не сможет найти подходящий ресурс строк для локали пользователя. Обычно это хорошая идея по умолчанию для английского для strings.xml и создать strings_it.xml для итальянского.

http://developer.android.com/guide/topics/resources/index.html

+0

Да, я знал о strings.xml для версии на разных языках, но то, что я хочу сделать, это изменить язык с давлением кнопки. Можно ли это сделать с помощью 'SharedPreferences'? Также измените цвет фона и текста? Как? Спасибо. – Valerio

+0

Мое приложение имеет xml-файлы в res/raw, которые работают как файлы данных. Я хотел бы использовать другие xml-файлы, в которых есть другие данные с некоторыми отличиями от другого XML-файла. Пользователь должен решить, какой файл использовать. Я не знаю, знаете ли вы, что я имел в виду. – Valerio

Смежные вопросы