У меня есть textView в XML здесь.
<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"/>
Как вы можете видеть, я установил DrawableLeft в XML.
Я хотел бы изменить рисование в коде.
Есть ли способ сделать это? Или установить drawableLeft в коде для текстового представления?
android
textview
android-drawable
coder_For_Life22
источник
источник
textview.getCompoundDrawablesRelative()[0]
сmContext.getResources().getDrawable(R.drawable.my_drawable)
Из здесь я вижу метод setCompoundDrawablesWithIntrinsicBounds (Int, Int, Int, Int) может использоваться , чтобы сделать это.
источник
Вы можете использовать любой из следующих методов для установки Drawable на TextView:
1- setCompoundDrawablesWithIntrinsicBounds (int, int, int, int)
2- setCompoundDrawables (Left_Drawable, Top_Drawable, Right_Drawable, Bottom_Drawable)
А чтобы получить доступ к ресурсам, вы можете использовать:
источник
Использование Kotlin:
Вы можете создать функцию расширения или просто использовать
setCompoundDrawablesWithIntrinsicBounds
напрямую.Если вам нужно изменить размер отрисовки, вы можете использовать эту функцию расширения.
Чтобы стать действительно модным, создайте оболочку, которая позволяет изменять размер и / или цвет.
источник
Удлинение Kotlin + некоторые отступы вокруг drawable
источник
Есть два способа сделать это, вы можете использовать для этого XML или Java. Если он статический и не требует изменений, вы можете инициализировать в XML.
Теперь, если вам нужно динамически менять значки, вы можете сделать это, вызывая значки на основе событий.
источник
источник