JavaでXMLレイアウトを使用せずにTextView
スタイル(太字または斜体)を設定する方法
言い換えれば、私はAndroid:textStyle
をJavaで書く必要があります。
textView.setTypeface(null, Typeface.BOLD_ITALIC);
textView.setTypeface(null, Typeface.BOLD);
textView.setTypeface(null, Typeface.ITALIC);
textView.setTypeface(null, Typeface.NORMAL);
前の書体を維持する
textView.setTypeface(textView.getTypeface(), Typeface.BOLD_ITALIC)
これを試して、TextView
を太字または斜体にします。
textView.setTypeface(textView.getTypeface(), Typeface.BOLD);
textView.setTypeface(textView.getTypeface(), Typeface.ITALIC);
textView.setTypeface(textView.getTypeface(), Typeface.BOLD_ITALIC);
setTypeface()
を使ってプログラム的に行うことができます。
textView.setTypeface(null, Typeface.NORMAL); // for Normal Text
textView.setTypeface(null, Typeface.BOLD); // for Bold only
textView.setTypeface(null, Typeface.ITALIC); // for Italic
textView.setTypeface(null, Typeface.BOLD_ITALIC); // for Bold and Italic
XMLファイルで<TextView />
に直接設定することができます:
Android:textStyle="normal"
Android:textStyle="normal|bold"
Android:textStyle="normal|italic"
Android:textStyle="bold"
Android:textStyle="bold|italic"
2つの選択肢があります。
オプション1 (太字、斜体、下線のみで機能):
String s = "<b>Bolded text</b>, <i>italic text</i>, even <u>underlined</u>!"
TextView tv = (TextView)findViewById(R.id.THE_TEXTVIEW_ID);
tv.setText(Html.fromHtml(s));
オプション2:
Spannable を使用してください。もっと複雑ですが、テキスト属性を動的に変更することができます(太字/斜体だけでなく色も)。
setTypeface()
メソッドを使ってプログラム的に行うことができます。
以下はデフォルトの書体のコードです。
textView.setTypeface(null, Typeface.NORMAL); // for Normal Text
textView.setTypeface(null, Typeface.BOLD); // for Bold only
textView.setTypeface(null, Typeface.ITALIC); // for Italic
textView.setTypeface(null, Typeface.BOLD_ITALIC); // for Bold and Italic
カスタム書体 を設定したい場合
textView.setTypeface(textView.getTypeface(), Typeface.NORMAL); // for Normal Text
textView.setTypeface(textView.getTypeface(), Typeface.BOLD); // for Bold only
textView.setTypeface(textView.getTypeface(), Typeface.ITALIC); // for Italic
textView.setTypeface(textView.getTypeface(), Typeface.BOLD_ITALIC); // for Bold and Italic
次のように<TextView />
のXMLファイルに直接設定できます。
Android:textStyle="normal"
Android:textStyle="normal|bold"
Android:textStyle="normal|italic"
Android:textStyle="bold"
Android:textStyle="bold|italic"
またはあなたのfavフォントを(資産から)設定することもできます。より多くの情報のために リンクを見なさい
TextView text = (TextView)findViewById(R.id.THE_TEXTVIEW_ID);
今textview
プロパティを設定します。
text.setTypeface(null, Typeface.BOLD); //-- for only bold the text
text.setTypeface(null, Typeface.BOLD_ITALIC); //-- for bold & italic the text
text.setTypeface(null, Typeface.ITALIC); // -- for italic the text
単にテキストを 太字にしたい場合 - 。テキストビュープロパティのレイアウトにこの行を書き込みます。
Android:textStyle="bold"
これを試して、JavaコードでTextView
スタイルを設定してください。
txt1.setTypeface(null,Typeface.BOLD_ITALIC);
TextView text = (TextView)findViewById(R.layout.textName);
text.setTypeface(null,Typeface.BOLD);
それはそのようになります
yourTextView.setTypeface(null,Typeface.DEFAULT_BOLD);
イタリック体はTypeface.DEFAULT_BOLD
をTypeface.DEFAULT_ITALC
に置き換えることでできるはずです。
その仕組みを教えてください。
textView.setTypeface(Typeface tf, int style);
を使用して TextView
のstyleプロパティを設定します。詳細については developer documentation を参照してください。
これを試して:
TextView textview = (TextView)findViewById(R.id.textview_idname);
textview.setTypeface(null,Typeface.BOLD);
1つの方法があります:
myTextView.setTypeface(null, Typeface.ITALIC);
myTextView.setTypeface(null, Typeface.BOLD_ITALIC);
myTextView.setTypeface(null, Typeface.BOLD);
myTextView.setTypeface(null, Typeface.NORMAL);
以前の書体を使い続けて以前に適用したものを失いたくない場合は、別の選択肢があります。
myTextView.setTypeface(textView.getTypeface(), Typeface.NORMAL);
myTextView.setTypeface(textView.getTypeface(), Typeface.BOLD);
myTextView.setTypeface(textView.getTypeface(), Typeface.ITALIC);
myTextView.setTypeface(textView.getTypeface(), Typeface.BOLD_ITALIC);
これを行うための標準的な方法は、カスタムスタイルを使用することです。元
styles.xml
に以下を追加してください。
<resources xmlns:Android="http://schemas.Android.com/apk/res/Android">
<style name="MyApp.TextAppearance.LoginText">
<item name="Android:textStyle">bold|italic</item>
</style>
次のようにこのスタイルをあなたのTextView
に適用してください。
<TextView
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
style="@style/MyApp.TextAppearance.LoginText" />
あなたはこのように試すことができます:
<string name="title"><u><b><i>Your Text</i></b></u></string>
そしてここに説明されているように Android Developers String Resources あなたがあなたのスタイル付きテキストリソースでパラメータを使う必要があるなら、あなたは左括弧をエスケープしなければなりません
<resources>
<string name="welcome_messages">Hello, %1$s! You have <b>%2$d new messages</b>.</string>
</resources>
そしてformatHtml(string)を呼び出します。
Resources res = getResources();
String text = String.format(res.getString(R.string.welcome_messages), username, mailCount);
CharSequence styledText = Html.fromHtml(text);
私の場合:
1 - テキストを設定
2 - 書体を設定する
holder.title.setText(item.nome);
holder.title.setTypeface(null, Typeface.BOLD);
私はカスタムフォントを使いたいので、いくつかの答えの組み合わせだけが私のために働きます。 layout.xml
のような私のAndroid:textStlyle="italic"
の設定は明らかにAOSによって無視されました。だから最後に私は次のようにしなければならなかった:strings.xml
ではターゲット文字列は次のように宣言されていた:
<string name="txt_sign"><i>The information blah blah ...</i></string>
それからさらにコードで:
TextView textSign = (TextView) findViewById(R.id.txt_sign);
FontHelper.setSomeCustomFont(textSign);
textSign.setTypeface(textSign.getTypeface(), Typeface.ITALIC);
私はSpannable
オプションを試しませんでした(私はこれを働かなければなりません)が、
textSign.setText(Html.fromHtml(getString(R.string.txt_sign)))
効果はありませんでした。また、setTypeface()
を単独で残してitalic tag
をstrings.xml
から削除しても効果はありません。トリッキーなAndroid ...
textView.setTypeface(null, Typeface.BOLD_ITALIC);
textView.setTypeface(null, Typeface.BOLD);
textView.setTypeface(null, Typeface.ITALIC);
textView.setTypeface(null, Typeface.NORMAL);
前の書体を維持する
textView.setTypeface(textView.getTypeface(), Typeface.BOLD_ITALIC)
AppCompatTextView text =(AppCompatTextView)findViewById(R.layout.appCompatTextView1);
text.setTypeface(null,Typeface.BOLD);
プログラムで書体を設定するには、上記の方法を使用します。
最善の方法はstyles.xml
で定義することです
<style name="common_txt_style_heading" parent="Android:style/Widget.TextView">
<item name="Android:textSize">@dimen/common_txtsize_heading</item>
<item name="Android:textColor">@color/color_black</item>
<item name="Android:textStyle">bold|italic</item>
</style>
そしてそれをTextView
で更新します
<TextView
Android:id="@+id/txt_userprofile"
style="@style/common_txt_style_heading"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:layout_centerHorizontal="true"
Android:layout_marginTop="@dimen/margin_small"
Android:text="@string/some_heading" />
これを試して:
textView.setTypeface(textView.getTypeface(), Typeface.BOLD);
textView.setTypeface(textView.getTypeface(), Typeface.ITALIC);
textView.setTypeface(textView.getTypeface(), Typeface.BOLD_ITALIC);
これが、OnePlus Slate™フォントで構成されたOnePlus 5Tで私のために働いた唯一のものです:
textView.setTypeface(Typeface.create(textView.getTypeface(), useBold ? Typeface.BOLD : Typeface.NORMAL));
他の方法では、BOLDまたはNORMALの場合はRobotoにフォールバックします。
スタイル選択基準に基づいてできる最も簡単な方法は、次のとおりです。
String pre = "", post = "";
if(isBold){
pre += "<b>"; post += "</b>";
}
if(isItalic){
pre += "<i>"; post += "</i>";
}
if(isUnderline){
pre += "<u>"; post += "</u>";
}
textView.setText(Html.fromHtml(pre + editText.getText().toString()+ post));
// you can also use it with EidtText
editText.setText(Html.fromHtml(pre + editText.getText().toString()+ post));