I want to add icon at the left side of the textView.How can I do that?
Asked
Active
Viewed 8.8k times
58
-
5have you searched for `android:drawableLeft="@drawable/ic_launcher"` – SilentKiller Aug 13 '14 at 06:47
3 Answers
125
You can use:
android:drawableLeft="@drawable/ic_launcher"
and you can also put padding between drawable and textview by
android:drawablePadding="2dp"
If you always want an icon to appear before the text, it is recommended to use drawableStart instead of drawableLeft since many languages are not read left to right.
ExcellentSP
- 1,440
- 2
- 15
- 37
krunal patel
- 2,198
- 1
- 10
- 11
-
1
-
3For API 17 and above Replace android:drawableLeft with android:drawableStart to support RTL – Pixbyte Sep 22 '19 at 11:19
-
how about if gravity text is center , the icon didnt change into center following the text ? – Yogi Arif Widodo Mar 31 '22 at 02:19
75
You can do this using this code.
TextView textView = (TextView) findViewById(R.id.myTxtView);
textView.setCompoundDrawablesWithIntrinsicBounds(R.drawable.icon, 0, 0, 0);
Ravindra Kushwaha
- 7,428
- 13
- 49
- 95
Robin Royal
- 1,678
- 1
- 16
- 28
-
-
-
5@AlexeyShevelyov To center the text, you can use `android:gravity="center_vertical"` in the layout file or `textView.setGravity(Gravity.CENTER_VERTICAL);` in the Java file. – weeix Nov 07 '17 at 03:07
-
4and to add nice padding: `textView.setCompoundDrawablePadding( context.getResources().getDimensionPixelOffset(R.dimen.small_padding)` where R.dimen.small_padding - 16dp – Kirill Karmazin Dec 02 '18 at 15:40
7
You can use this in your XML file:
android:drawableLeft
For your TextView and specify a drawable there your want to present on the left side of it.
Emil Adz
- 39,787
- 36
- 133
- 182