Есть два способа сделать это:
1.Использование стилей
Вы можете определить свои собственные стили, создав XML-файлы в каталоге res/values
.Итак, давайте предположим, что вы хотите иметь красный и жирный текст, а затем вы создаете файл с таким содержимым:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="MyRedTheme" parent="android:Theme.Light">
<item name="android:textAppearance">@style/MyRedTextAppearance</item>
</style>
<style name="MyRedTextAppearance" parent="@android:style/TextAppearance">
<item name="android:textColor">#F00</item>
<item name="android:textStyle">bold</item>
</style>
</resources>
Вы можете назвать его так, как хотите, например res/values/red.xml
.Тогда единственное, что вам нужно сделать, - это использовать это представление в нужных виджетах, например:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<TextView
style="@style/MyRedTheme"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="This is red, isn't it?"
/>
</LinearLayout>
. Для дальнейшего ознакомления вы можете прочитать эту статью: Понимание тем и стилей Android
2.Использование пользовательских классов
Это еще один возможный способ для достижения этой цели, и вы можете предоставить свой собственный TextView
, который всегда устанавливает цвет текста на ваш вкус;например:
import android.content.Context;
import android.graphics.Color;
import android.util.AttributeSet;
import android.widget.TextView;
public class RedTextView extends TextView{
public RedTextView(Context context, AttributeSet attrs) {
super(context, attrs);
setTextColor(Color.RED);
}
}
Тогда вам просто нужно обработать его как обычный TextView
в вашем XML-файле:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<org.example.RedTextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="This is red, isn't it?"
/>
</LinearLayout>
Используете ли вы тот или иной выбор, зависит от ваших потребностей.Если единственное, что вы хотите сделать, это изменить внешний вид, то лучший подход - первый.С другой стороны, если вы хотите изменить внешний вид и добавить некоторые новые функциональные возможности в свои виджеты, второй вариант - это путь.