Uruchomiłem nowe narzędzie Lint przeciwko mojemu kodowi. Wymyślił wiele dobrych sugestii, ale tej nie rozumiem.
Ten znacznik i jego dzieci można zastąpić jednym i złożonym rysunkiem
Problem: sprawdza, czy bieżący węzeł można zastąpić TextView przy użyciu złożonych rysunków.
LinearLayout, który zawiera ImageView i TextView, może być bardziej efektywnie obsługiwany jako złożony rysunek
A oto mój układ
<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>
Czy ktoś może podać konkretny przykład, jak w takim przypadku sprawić, by związek był wyciągalny?
TextView
/ImageView
kombinacje można zastąpić w ten sposób.Odpowiedzi:
TextView
pochodzi z 4 złożonymi szufladami, po jednej dla każdej lewej, górnej, prawej i dolnej.W twoim przypadku, to nie potrzebne
LinearLayout
iImageView
na wszystkich. Po prostu dodajandroid:drawableLeft="@drawable/up_count_big"
do swojegoTextView
.Zobacz TextView # setCompoundDrawablesWithIntrinsicBounds, aby uzyskać więcej informacji.
źródło
ImageView
. Ostrzeżenie mówi „można zastąpić przez”, a nie „należy zastąpić przez”jeśli z jakiegoś powodu musisz dodać kod, możesz użyć tego:
gdzie lewy, górny, prawy dolny są Drawable
źródło
Aby dodać do tego - wydaje się ważne, aby zdefiniować szerokość i wysokość rysowania zgodnie z tym postem:
(jego kod działa)
źródło
Możesz użyć ogólnej implementacji złożonego rysunku, ale jeśli chcesz zdefiniować rozmiar rysunku, użyj tej biblioteki:
https://github.com/a-tolstykh/textview-rich-drawable
Oto mały przykład użycia:
źródło