ユーザーがTextView
をタップしたときに、定義済みのスタイルを適用したいAndroidアプリがあります。
textview.setStyle()
を見つけようとしましたが、存在しません。私は試した
textview.setTextAppearance();
しかし、それは機能しません。
これを行うには、次のように新しいXMLファイルres/values/style.xml
を作成しました。
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="boldText">
<item name="Android:textStyle">bold|italic</item>
<item name="Android:textColor">#FFFFFF</item>
</style>
<style name="normalText">
<item name="Android:textStyle">normal</item>
<item name="Android:textColor">#C0C0C0</item>
</style>
</resources>
「strings.xml」ファイルにも次のようなエントリがあります。
<color name="highlightedTextViewColor">#000088</color>
<color name="normalTextViewColor">#000044</color>
次に、私のコードでClickListenerを作成して、そのTextViewのタップイベントをトラップします。EDIT:Asから23「setTextAppearance」は非推奨です
myTextView.setOnClickListener(new View.OnClickListener() {
public void onClick(View view){
//highlight the TextView
//myTextView.setTextAppearance(getApplicationContext(), R.style.boldText);
if (Build.VERSION.SDK_INT < 23) {
myTextView.setTextAppearance(getApplicationContext(), R.style.boldText);
} else {
myTextView.setTextAppearance(R.style.boldText);
}
myTextView.setBackgroundResource(R.color.highlightedTextViewColor);
}
});
元に戻すには、これを使用します。
if (Build.VERSION.SDK_INT < 23) {
myTextView.setTextAppearance(getApplicationContext(), R.style.normalText);
} else{
myTextView.setTextAppearance(R.style.normalText);
}
myTextView.setBackgroundResource(R.color.normalTextViewColor);
Jonathanが示唆したように、textView.setTextTypeface
の使用は機能しますが、数秒前にアプリで使用しました。
textView.setTypeface(null, Typeface.BOLD); // Typeface.NORMAL, Typeface.ITALIC etc.
TextView tvCompany = (TextView)findViewById(R.layout.tvCompany);
tvCompany.setTypeface(null,Typeface.BOLD);
あなたはコードからそれを設定します。 書体
プログラムで:実行時間
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で設定することもできます。
Android:textStyle="normal"
Android:textStyle="normal|bold"
Android:textStyle="normal|italic"
Android:textStyle="bold"
Android:textStyle="bold|italic"
これが役立つことを願って
要約
textView.setTypeface(Typeface.DEFAULT_BOLD);
が最も簡単な方法であることがわかりました。
このコード行を試してください。
textview.setTypeface(textview.getTypeface(), Typeface.DEFAULT_BOLD);
ここでは、このテキストビューから現在の書体を取得し、新しい書体を使用して置き換えます。ここの新しい書体はDEFAULT_BOLD
ですが、さらに多くを適用できます。
設定するスタイルに応じて、異なる方法を使用する必要があります。 TextAppearanceには独自のセッターがあり、TypeFaceには独自のセッターがあり、背景には独自のセッターがあります。
TextViewのsetText()のdocoを参照してください http://developer.Android.com/reference/Android/widget/TextView.html
文字列のスタイルを設定するには、Android.text.style。*オブジェクトをSpannableStringに添付するか、XMLリソースファイルで書式設定されたテキストを設定する例について、利用可能なリソースタイプのドキュメントをご覧ください。