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

[解決済み】ImageViewとTextViewを含むLinearLayoutの代わりに複合drawableを使用するには?

2022-04-20 02:54:35

質問

新しい Lint ツールを私のコードに対して実行しました。 たくさんの良い提案がありましたが、この提案だけは理解できません。

<ブロッククオート

このタグとその子は、1つのタグと複合drawableに置き換えることができます。

課題 現在のノードが、複合 drawable を使用して TextView に置き換えられるかどうかをチェックします。

ImageView と TextView を含む LinearLayout は、複合 drawable として扱った方が効率的です。

そして、これが私のレイアウトです。

<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:layout_centerInParent="true">

<ImageView 
    android:id="@+id/upImage"
    android:layout_width="20dp"
    android:layout_height="20dp"
    android:layout_gravity="center_vertical"
    android:scaleType="centerInside"
    android:src="@drawable/up_count_big">
</ImageView>

<TextView
    android:id="@+id/LikeCount"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginLeft="2dp"
    android:layout_marginBottom="1dp"
    android:textColor="@color/gray"
    android:textSize="16sp"
    android:layout_gravity="center_vertical">
</TextView>
</LinearLayout>

この場合、どなたか複合描画可能な具体的な例を教えてください。

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

TextView は、左、上、右、下それぞれに1つずつ、合計4つの複合ドローアブルが付属しています。

あなたの場合 LinearLayoutImageView を全く使用しない。ただ android:drawableLeft="@drawable/up_count_big"TextView .

参照 TextView#setCompoundDrawablesWithIntrinsicBounds を参照してください。