私はAndroid
アプリを書いており、1つの質問があります。TextView(Xamarin Android)
私は44 TextViews
です。
カスタムフォントを適用する必要があります。
私はテキスト1のようなもの... text44
を宣言し、それらにフォントを適用することはできますか?
私はAndroid
アプリを書いており、1つの質問があります。TextView(Xamarin Android)
私は44 TextViews
です。
カスタムフォントを適用する必要があります。
私はテキスト1のようなもの... text44
を宣言し、それらにフォントを適用することはできますか?
あなたはあなたが持っているTextview
にFontを適用する非常に知られているライブラリを持っています。
Calligraphyと呼ばれています。
あなたがint単にあなたApplication
でこれを行うことによって行うことができます。
CalligraphyConfig.InitDefault(new CalligraphyConfig.Builder()
.SetDefaultFontPath("fonts/your_font.ttf")
.SetFontAttrId(Resource.Attribute.fontPath)
.Build());
そして、あなたのActivity/BaseActivity
中:あなたがする必要がある場合
protected override void AttachBaseContext(Android.Content.Context @base)
{
base.AttachBaseContext (CalligraphyContextWrapper.Wrap(@base));
}
あなたはすべてのフォントのフォントを指定して、特定することができます。 お手伝いをしてください。
あなたTextViewsは、その後、同じテキストインクリメント番号を含む、テキスト1、テキスト2、などと命名されている場合は、forループを実行しようとする場合がありますが:
for(int i = 0; i <= 44; i++) {
TextView text = FindViewById<TextView> (Resources.GetIdentifier ("text" + i, null, PackageName));
//Apply your font to text.
}
しかし、私はあなたを追加することをお勧めしますあなたのリソース資産のフォントファイルを作成し、AXMLを使用して適用します(容易に実行可能かどうかは考えられません)。また、この場合にforループを使用すると、より小さいデバイスでは重くなることに注意してください。
私はこのようにしようとしています –
タイプフェイスtf10 = Typeface.CreateFromAsset(Assets、 "Font/HelveticaNeueLight.ttf"); text.Typeface = tf10;この行の –
はエラーです: text.Typeface = tf10; –
カスタムTextView
を作成し、どこでもそれを使用する:
[Register ("com.myproject.TextViewForeign")]
public class TextViewForeign:TextView
{
public TextViewForeign (Context context) : base (context)
{
setTypeFace();
}
public TextViewForeign (Context context, IAttributeSet attrs) : base (context, attrs)
{
setTypeFace();
}
public TextViewForeign (Context context, IAttributeSet attrs, int defStyle) : base (context, attrs, defStyle)
{
setTypeFace();
}
public TextViewForeign (IntPtr javaReference, JniHandleOwnership transfer)
: base (javaReference, transfer)
{
setTypeFace();
}
private void setTypeFace()
{
Android.Graphics.Typeface tf = global::Android.Graphics.Typeface.CreateFromAsset (Context.Assets, "fonts/bpg_arial.ttf");
this.SetTypeface (tf, Android.Graphics.TypefaceStyle.Normal);
}
}
を正しいと私の答えをマークしてください。私はこのようなことをしようとしています – jzeferino