Android:如何在TextView左侧添加图标

69
我想在textView左侧添加图标。我该如何做?

5
你是否搜索过 android:drawableLeft="@drawable/ic_launcher" - SilentKiller
3个回答

147

您可以使用:

android:drawableLeft="@drawable/ic_launcher"

您还可以通过在drawabletextview之间添加填充来实现

android:drawablePadding="2dp"

如果您希望在文本前始终出现一个图标,建议使用drawableStart而不是drawableLeft,因为许多语言不是从左到右阅读。


2
如何通过“drawableLeft”添加图标时更改其颜色? - gegobyte
3
对于API 17及以上版本,请将android:drawableLeft替换为android:drawableStart,以支持RTL(从右到左)的布局。 - Pixbyte
如果重力文本居中,图标没有跟随文本居中改变怎么办? - Yogi Arif Widodo

81

你可以使用这段代码来实现。

TextView textView = (TextView) findViewById(R.id.myTxtView);
textView.setCompoundDrawablesWithIntrinsicBounds(R.drawable.icon, 0, 0, 0);

谢谢@Robin。它解决了我的问题。 - user3519555
有没有一种方法可以将它居中? - Alexey Shevelyov
5
要将文本居中,您可以在布局文件中使用android:gravity="center_vertical"或在Java文件中使用textView.setGravity(Gravity.CENTER_VERTICAL); - weeix
4
为了添加漂亮的填充效果:textView.setCompoundDrawablePadding( context.getResources().getDimensionPixelOffset(R.dimen.small_padding),其中R.dimen.small_padding代表16dp。 - Kirill Karmazin

9
您可以在XML文件中使用以下代码:

您可以在XML文件中使用以下代码:

android:drawableLeft

对于您的TextView,可以在其中指定一个可绘制对象,该对象将显示在其左侧。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接