1. ホーム
  2. アンドロイド

[解決済み】TextViewにプログラムで左のdrawableを設定する。

2022-04-15 06:05:19

質問

ここにxmlのtextViewがあります。

<TextView
        android:id="@+id/bookTitle"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:drawableLeft="@drawable/checkmark"
        android:gravity="center_vertical"
        android:textStyle="bold"
        android:textSize="24dip"
        android:maxLines="1"
        android:ellipsize="end"/>

ご覧の通り、xmlでDrawableLeftを設定しました。

コードでdrawableを変更したいのですが。

どうにかしてこれを行う方法はないでしょうか?または、テキストビューのコードでdrawableLeftを設定することはできますか?

どのように解決するのですか?

を使用することができます。 setCompoundDrawablesWithIntrinsicBounds(int left, int top, int right, int bottom)

画像を表示しない場所を0にする

左のDrawableの例。

TextView textView = (TextView) findViewById(R.id.myTxtView);
textView.setCompoundDrawablesWithIntrinsicBounds(R.drawable.icon, 0, 0, 0);

または setCompoundDrawablesRelativeWithIntrinsicBounds(セットコンパウンドドローアブルズリレーティブウィズイントリンシックバウンズ を使用すると、RTL/LTRレイアウトを尊重することができます。


ヒント: XMLの属性は知っているが、実行時にどのように使うか分からないときは、開発者ドキュメントでその属性の説明を見ればよい。そこには 関連メソッド 実行時にサポートされている場合。 DrawableLeftの場合