すでにいくつかの記事を読んでGoogleで検索しましたが、失敗しました。
私の問題は、フォントフェースに関するものです。
Androidでは、"Android:typeface"
には4つの属性のみがあります:Normal、Sans、Serif、Monospace。
それでは、アプリケーションで「Verdana」を使用するにはどうすればよいですか?
Androidアプリケーションでこのフォントを使用する正しい方法を教えてください。
これは簡単な例です。プロジェクトのルートにassets/fonts/
というフォルダーを作成し、TTFフォントファイル(この場合はVerdana.ttf)を貼り付けます。次に、そのフォントをTextView
などに適用する場合は、次の手順を実行します。
import Android.graphics.Typeface;
public class FontSampler extends Activity {
@Override
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
setContentView(R.layout.main);
TextView tv=(TextView)findViewById(R.id.custom);
Typeface face=Typeface.createFromAsset(getAssets(),
"fonts/Verdana.ttf");
tv.setTypeface(face);
}
}
この例は、ComonsWareの本(Mark Murphy著)から引用したものです。 GitHubから完全な例をダウンロードしてください 。
https://github.com/neopixl/PixlUI でPixlUIを使用できます
.jarをインポートしてXMLで使用する
<com.neopixl.pixlui.components.textview.TextView
Android:id="@+id/textView1"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:text="@string/hello_world"
pixlui:typeface="GearedSlab.ttf" />
上手!!
この質問はかなり古いですが、XMLコードを使用してすべてのTextviewsにカスタムフォントを適用する方法についての回答を探している場合(2015年)は、以下を直接参照してください。
最初の:
アプリディレクトリ内のassetフォルダー内にカスタムフォントを追加する必要があります。
。ttfまたは。otfは両方ともAndroidの場合に機能します
2番目:
TextViewを以下のように拡張するクラスCustomTextViewを作成します。
public class CustomTextView extends TextView {
public CustomTextView(Context context) {
super(context);
}
public CustomTextView(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
}
public CustomTextView(Context context, AttributeSet attrs) {
super(context, attrs);
}
@Override
public void setTypeface(Typeface tf) {
super.setTypeface(FontCache.getFont(getContext(),"fonts/<font_name>"));
}
}
番目:
CustomTextViewのsetTypeface()メソッド内で使用されるFontCacheクラス。目的は、HashMapを使用して基本的なフォントキャッシュを行うことです。
public class FontCache {
private static Map<String,Typeface> fontMap = new HashMap<String,Typeface>();
public static Typeface getFont(Context context,String fontname){
if(fontMap.containsKey(fontname)){
return fontMap.get(fontname);
}
else{
Typeface tf = Typeface.createFromAsset(context.getAssets(),fontname);
fontMap.put(fontname,tf);
return tf;
}
}
}
4番目: [最終ステップ]カスタムフォントテキストビューが必要な場合は、xmlファイル内で直接CustomTextViewを使用するだけです。
<<package_name>.CustomTextView
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:text="Custom Font Text"
Android:textSize ="18sp"
Android:textAppearance="?android:textAppearanceSmall"
Android:id="@+id/custom_txt"
/>
申し訳ありませんが、これが既にSOのどこかに投稿されている場合。それが誰かを助けるなら、共有することを考えました!!
シンプルな EasyFonts サードパーティライブラリを使用して、さまざまなカスタムフォントをTextView
に設定できます。このライブラリを使用することにより、フォントをダウンロードしてasset/fontsフォルダーに追加することを心配する必要はありません。タイプフェイスオブジェクトの作成についても。
このライブラリは、Verdana Fontフェイスを提供しません。
ただし、次のフォントフェイスを提供します。どちらを使用したいですか。
単に:
TextView myTextView = (TextView)findViewById(R.id.myTextView);
myTextView.setTypeface(EasyFonts.robotoThin(this));
私はこのライブラリの著者です。
アプリの(カスタム)フォントをグローバルに変更するには、 Calligraphy をご覧ください
単に書道をgradle.buildに追加し、次のスニペットをApplication.onCreate()
に追加します。
CalligraphyConfig.initDefault(new CalligraphyConfig.Builder()
.setDefaultFontPath("fonts/MyCustomFont.ttf")
.setFontAttrId(R.attr.fontPath)
.build()
);
すべてのアクティビティで次を追加します。
@Override
protected void attachBaseContext(Context newBase) {
super.attachBaseContext(CalligraphyContextWrapper.wrap(newBase));
}
アプリでフォントをグローバルに変更するために必要なことはこれだけです。詳細については、ドキュメントをご覧ください。
// My example show you how to change fonts into a normal textView or list view
create a fonts folder into your assets dir of Android and copy your custom font in that ..
assets/fonts/monaco.ttf
// Font path
String fontPath = "fonts/monaco.ttf";
// Loading Font Face
Typeface tf = Typeface.createFromAsset(getAssets(), fontPath);
// CASE 1 : Inside your list view
holder.name = (TextView) convertView
.findViewById(R.id.textView_cityName);
// set name of text in each row
holder.name.setText(CitiesNames.get(position));
// set the type of font you want to set
holder.name.setTypeface(tf);
// CASE 2 : Inside your text view
TextView tx = (TextView)findViewById(R.id.textview1);
tx.setTypeface(tf);
//vKj