[android] ¿Cómo utilizo un drawable compuesto en lugar de un LinearLayout que contiene un ImageView y un TextView


Answers

Si por alguna razón necesita agregar un código, puede usar esto:

mTextView.setCompoundDrawablesWithIntrinsicBounds(left, top, right, bottom);

donde izquierda, arriba, abajo derecha son Drawables

Question

Corrí la nueva herramienta de Lint contra mi código. Surgió con muchas buenas sugerencias, pero esta no puedo entender.

Esta etiqueta y sus hijos pueden reemplazarse por uno y un compuesto dibujable

Problema: comprueba si el nodo actual puede reemplazarse por un TextView utilizando compuestos compuestos.

Un LinearLayout que contiene un ImageView y un TextView puede manejarse más eficientemente como un compuesto dibujable

Y aquí está mi diseño

<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>

¿Puede alguien proporcionar un ejemplo concreto de cómo hacer un compuesto dibujable en este caso?




Puede utilizar la implementación dibujable general, pero si necesita definir un tamaño de dibujable use esta biblioteca:

https://github.com/a-tolstykh/textview-rich-drawable

Aquí hay un pequeño ejemplo de uso:

<com.tolstykh.textviewrichdrawable.TextViewRichDrawable
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Some text"
        app:compoundDrawableHeight="24dp"
        app:compoundDrawableWidth="24dp" />





Related