ユーザーがをタップしたときにTextView
定義済みのスタイルを適用したいAndroidアプリがあります。
見つけようと思ったのですtextview.setStyle()
が存在しません。私は試した
textview.setTextAppearance();
しかし、それは機能しません。
ユーザーがをタップしたときにTextView
定義済みのスタイルを適用したいAndroidアプリがあります。
見つけようと思ったのですtextview.setStyle()
が存在しません。私は試した
textview.setTextAppearance();
しかし、それは機能しません。
回答:
これを行うにはres/values/style.xml
、次のように新しい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>
次に、私のコードで、そのTextViewのタップイベントをトラップするClickListenerを作成しました。 編集: API 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);
ジョナサンが提案したように、textView.setTextTypeface
作品を使用して、私は数秒前にアプリでそれを使用しました。
textView.setTypeface(null, Typeface.BOLD); // Typeface.NORMAL, Typeface.ITALIC etc.
プログラム的に:実行時
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
がありますが、もっと多くを適用できます。
TextView http://developer.android.com/reference/android/widget/TextView.htmlの setText()のdocoを参照してください
文字列のスタイルを設定するには、android.text.style。*オブジェクトをSpannableStringにアタッチするか、XMLリソースファイルでフォーマットされたテキストを設定する例について、利用可能なリソースタイプのドキュメントをご覧ください。