42

プログラムで textView を作成しています。この textView のスタイルを設定する方法はありますか? に似たもの

style="@android:style/TextAppearance.DeviceDefault.Small"

ファイルがある場合に使用しlayout.xmlます。

4

8 に答える 8

71

ビューのスタイルをプログラムで設定することはできませんが、textView.setTextAppearance(context, android.R.style.TextAppearance_Small);.

于 2013-02-22T08:55:03.053 に答える
33

現在、View のスタイルをプログラムで設定することはできません。

これを回避するには、スタイルが割り当てられたテンプレート レイアウト xml ファイルを作成します。たとえば、次の内容でres/layoutcreate as を実行します。tvtemplate.xml

<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="This is a template"
        style="@android:style/TextAppearance.DeviceDefault.Small" />

次に、これを膨らませて、新しい TextView をインスタンス化します。

TextView myText = (TextView)getLayoutInflater().inflate(R.layout.tvtemplate, null);
于 2013-02-22T08:53:40.670 に答える
8

Compat バージョン (API 23 で廃止されたため):

TextViewCompat.setTextAppearance(textView, android.R.style.TextAppearance_DeviceDefault_Small);
于 2018-05-07T16:52:09.313 に答える
6

これを試して

textview.setTextAppearance(context, R.style.yourstyle);

これはうまくいかないかもしれません このようなテキストビューでxmlを作成してみてください

textviewstyle.xml

<TextView xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        style="@android:style/TextAppearance.DeviceDefault.Small" />

目的のスタイルを取得するには、textview を含む xml を膨張させます

TextView myText = (TextView)getLayoutInflater().inflate(R.layout.tvstyle, null);
于 2013-02-22T08:57:24.893 に答える
1

実行時に (コードで) 生成されたビューの場合、スタイルをコンストラクターに渡すことができます: View(Context, AttributeSet, int)

それ以外の場合は、さまざまなメソッドを呼び出して外観を変更する必要があります

于 2013-02-22T08:55:45.010 に答える