が、私はこのように、私のAndroidアプリに(動的)のテーマを使用しています:設定のテーマの色を動的
my_layout.xml(抜粋):
<TextView
android:id="@+id/myItem"
style="?my_item_style" />
attrs.xml(抜粋) :
<attr name="my_item_style" format="reference" />
themes.xml(抽出物):
<style name="MainTheme.Blue">
<item name="my_item_style">@style/my_item_style_blue</item>
</style>
<style name="MainTheme.Green">
<item name="my_item_style">@style/my_item_style_green<item>
</style>
のstyles.xml(抜粋):あなたが見ることができるよう
<style name="my_item_style_blue">
<item name="android:textColor">@color/my_blue</item>
</style>
<style name="my_item_style_green">
<item name="android:textColor">@color/my_blue</item>
</style>
だから、私は動的にテーマを設定しています。私はこのクラスを使用しています:
public class ThemeUtils {
private static int sTheme;
public final static int THEME_BLUE = 1;
public final static int THEME_GREEN = 2;
public static void changeToTheme(MainActivity activity, int theme) {
sTheme = theme;
activity.startActivity(new Intent(activity, MyActivity.class));
}
public static void onActivityCreateSetTheme(Activity activity)
{
switch (sTheme)
{
default:
case THEME_DEFAULT:
case THEME_BLUE:
activity.setTheme(R.style.MainTheme_Blue);
break;
case THEME_GREEN:
activity.setTheme(R.style.MainTheme_Green);
break;
}
}
}
私が知りたいのは何、コード内でこの(変更のテーマカラーを)行う方法方法はありますか?は、例えば、私はコード(抜粋)は以下のいる:
((TextView) findViewById(R.id.myItem)).setTextColor(R.color.blue);
これは、利用可能なテーマのためswitch
コマンドを使用して、テーマの正しい色を返しますいくつかのヘルパーメソッドによって行うことができます。しかし、より良い、より良い、そしてより速い方法があるかどうかを知りたいと思います。
ありがとうございます!
ここではテーマを動的に設定していますか?あなたもそのコードを共有できますか? – azizbekian
@azizbekian私はそれが私の質問に関連しているとは思わないが、私はThemeUtilsクラスを追加しました。 – Tom11