私のコードに対して新しいLintツールを実行しました。たくさんの良い提案を思いついたが、これは私には理解できない。
このタグとその子は、1つの複合ドロウアブルに置き換えることができます
問題:複合ドロウアブルを使用して、現在のノードをTextViewで置換できるかどうかを確認します。
ImageViewとTextViewを含むLinearLayoutは、複合ドロウアブルとしてより効率的に処理できます。
そして、これが私のレイアウトです
<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つの複合ドロウアブルが付属しています。
あなたの場合、LinearLayout
とImageView
はまったく必要ありません。 TextView
にAndroid:drawableLeft="@drawable/up_count_big"
を追加するだけです。
詳細については、 TextView#setCompoundDrawablesWithIntrinsicBounds を参照してください。
何らかの理由でコードを介して追加する必要がある場合、これを使用できます:
mTextView.setCompoundDrawablesWithIntrinsicBounds(left, top, right, bottom);
左、上、右下はDrawableです
これに追加するには、この投稿に従ってドロアブルの幅と高さを定義することが重要と思われます。
(彼のコードは動作します)
一般的な複合ドロウアブル実装を使用できますが、ドロウアブルのサイズを定義する必要がある場合は、このライブラリを使用します。
https://github.com/a-tolstykh/textview-rich-drawable
以下に使用例を示します。
<com.tolstykh.textviewrichdrawable.TextViewRichDrawable
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:text="Some text"
app:compoundDrawableHeight="24dp"
app:compoundDrawableWidth="24dp" />