web-dev-qa-db-ja.com

TextViewスタイルを設定する(太字または斜体)

JavaでXMLレイアウトを使用せずにTextViewスタイル(太字または斜体)を設定する方法

言い換えれば、私はAndroid:textStyleをJavaで書く必要があります。

756
JustMe
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)
1720
Tanmay Mandal

これを試して、TextViewを太字または斜体にします。

textView.setTypeface(textView.getTypeface(), Typeface.BOLD);
textView.setTypeface(textView.getTypeface(), Typeface.ITALIC);
textView.setTypeface(textView.getTypeface(), Typeface.BOLD_ITALIC);
257
Niranj Patel

プログラム的に:

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:

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 を使用してください。もっと複雑ですが、テキスト属性を動的に変更することができます(太字/斜体だけでなく色も)。

86
Gabriel Negut

プログラム的に:

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

XML:

次のように<TextView />のXMLファイルに直接設定できます。

Android:textStyle="normal"
Android:textStyle="normal|bold"
Android:textStyle="normal|italic"
Android:textStyle="bold"
Android:textStyle="bold|italic"

またはあなたのfavフォントを(資産から)設定することもできます。より多くの情報のために リンクを見なさい

35
akshay
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
12
Akash Thakkar

単にテキストを 太字にしたい場合 - 。テキストビュープロパティのレイアウトにこの行を書き込みます。

Android:textStyle="bold"
11
Hira Khan

これを試して、JavaコードでTextViewスタイルを設定してください。

txt1.setTypeface(null,Typeface.BOLD_ITALIC);
10
Nikhil
TextView text = (TextView)findViewById(R.layout.textName);
text.setTypeface(null,Typeface.BOLD);
9
Khushi

それはそのようになります

yourTextView.setTypeface(null,Typeface.DEFAULT_BOLD);

イタリック体はTypeface.DEFAULT_BOLDTypeface.DEFAULT_ITALCに置き換えることでできるはずです。

その仕組みを教えてください。

8
DustinRiley

textView.setTypeface(Typeface tf, int style);を使用して TextView のstyleプロパティを設定します。詳細については developer documentation を参照してください。

5
Dinesh Sharma

これを試して:

TextView textview = (TextView)findViewById(R.id.textview_idname);
textview.setTypeface(null,Typeface.BOLD);
5
Black_shadow

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); 
3
param

これを行うための標準的な方法は、カスタムスタイルを使用することです。元

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" />
3
Shivanand Darur

あなたはこのように試すことができます:

<string name="title"><u><b><i>Your Text</i></b></u></string>
2
Vishal Vaishnav

そしてここに説明されているように Android Developers String Resources あなたがあなたのスタイル付きテキストリソースでパラメータを使う必要があるなら、あなたは左括弧をエスケープしなければなりません

<resources>
<string name="welcome_messages">Hello, %1$s! You have &lt;b>%2$d new messages&lt;/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
Angelo Nodari

私の場合:

1 - テキストを設定

2 - 書体を設定する

holder.title.setText(item.nome);
holder.title.setTypeface(null, Typeface.BOLD);
1
FlipNovid

私はカスタムフォントを使いたいので、いくつかの答えの組み合わせだけが私のために働きます。 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 tagstrings.xmlから削除しても効果はありません。トリッキーなAndroid ...

1
Stan
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)
0
Amirhf
AppCompatTextView text =(AppCompatTextView)findViewById(R.layout.appCompatTextView1);
text.setTypeface(null,Typeface.BOLD);

プログラムで書体を設定するには、上記の方法を使用します。

0
Tulsi

最善の方法は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" />
0
Faheem

これを試して:

textView.setTypeface(textView.getTypeface(), Typeface.BOLD);
textView.setTypeface(textView.getTypeface(), Typeface.ITALIC);
textView.setTypeface(textView.getTypeface(), Typeface.BOLD_ITALIC);
0
mohamad sheikhi

これが、OnePlus Slate™フォントで構成されたOnePlus 5Tで私のために働いた唯一のものです:

textView.setTypeface(Typeface.create(textView.getTypeface(), useBold ? Typeface.BOLD : Typeface.NORMAL));

他の方法では、BOLDまたはNORMALの場合はRobotoにフォールバックします。

0
droid256

スタイル選択基準に基づいてできる最も簡単な方法は、次のとおりです。

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));
0
muzamil