私のアプリケーションでは、を実装してい5 different Custom App Themes
ます。
私が作成したこれらのテーマにはCustomTextview
、を拡張する5つの異なるフォントを使用していTextview
ます。以下は、それが作成される形式です。
public class CustomFontTextView extends TextView {
private static final String CUSTOM_FONT = "Custom-Regular.ttf";
private static final String TAG = CustomFontTextView.class.getName();
public CustomFontTextView(Context context) {
super(context);
if (android.os.Build.VERSION.SDK_INT < 14) {
setCustomFont(context, CUSTOM_FONT);
}
}
public CustomFontTextView(Context context, AttributeSet attrs) {
super(context, attrs);
if (android.os.Build.VERSION.SDK_INT < 14) {
setCustomFont(context, CUSTOM_FONT);
}
}
public CustomFontTextView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
if (android.os.Build.VERSION.SDK_INT < 14) {
setCustomFont(context, CUSTOM_FONT);
}
}
public boolean setCustomFont(Context ctx, String fontFile) {
try {
setTypeface(Typeface.createFromAsset(ctx.getAssets(), fontFile));
return true;
} catch (Exception e) {
Log.e(TAG, "Could not get typeface: "+e.getMessage());
return false;
}
}
}
XMLレイアウトでカスタムテキストビューを使用していました。
<com.myapp.android.fonts.CustomFontTextView
android:id="@+id/Text_name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/my_text_content"
android:textColor="@android:color/white"
android:textSize="22sp" />
しかし、さまざまなテーマを実装するには、選択したテーマに応じてすべてのテキストビューを変更するいくつかの方法を見つける必要があります。
テーマ内でフォントを設定する方法はありますか?
<style name="MyCustomTheme" parent="android:style/Theme">
.............. ......................
........... ...................
<item name="android:textColorPrimary">#000000</item>
<item name="android:buttonStyle">@style/MyCustomButton</item>
</style>
多くのUIコンポーネントが関係しているので、コードを邪魔することなくこれを実装したいと思います。