Android TextView 可绘制,更改可绘制和文本之间的填充?
Posted
技术标签:
【中文标题】Android TextView 可绘制,更改可绘制和文本之间的填充?【英文标题】:Android TextView drawable, change padding between drawable and text? 【发布时间】:2013-10-22 04:01:34 【问题描述】:我正在创建一个TextView
,下面有一个可绘制对象,位于GridLayout
中。
我想把drawable放到TextView
的中间;我试过了
setCompoundDrawablePadding(-75)
,它只会改变文本的位置。
当前代码:
TextView secondItem = new TextView(this);
GridLayout.LayoutParams second = new GridLayout.LayoutParams(row2, col1);
second.width = halfOfScreenWidth;
second.height = (int) (quarterScreenWidth * 1.5);
secondItem.setLayoutParams(second);
secondItem.setBackgroundResource(R.color.MenuSecond);
secondItem.setCompoundDrawablesRelativeWithIntrinsicBounds(0, 0, 0, R.drawable.ic_action_new);
secondItem.setText("Text");
secondItem.setCompoundDrawablePadding(-180);
secondItem.setGravity(Gravity.CENTER);
secondItem.setTextAppearance(this, android.R.style.TextAppearance_Large_Inverse);
gridLayout.addView(secondItem, second);
如何将 text 和 drawable 设置到 TextView
的中间?
【问题讨论】:
【参考方案1】:您需要组合 drawablePadding
和 padding
以获得所需的结果。
【讨论】:
如何将它组合成不同的文本(例如不同的语言环境)?【参考方案2】:在 XML 中:
android:drawablePadding = paddingValue
或
以编程方式:
TextView txt;
txt.setCompoundDrawablePadding(paddingValue)
android:drawablePadding 是为可绘制图标提供填充的最简单方法,但您不能提供特定的一侧填充,例如 paddingRight 或 paddingLeft 的可绘制图标。这为可绘制对象的任一侧提供了填充。
【讨论】:
【参考方案3】: <Button
android:id="@+id/otherapps"
android:layout_
android:layout_
android:background="@drawable/btn_background"
android:text="@string/other_apps"
android:layout_weight="1"
android:fontFamily="cursive"
android:layout_marginBottom="10dp"
android:drawableLeft="@drawable/ic_more"
android:paddingLeft="8dp" //for drawable padding to the left
android:textColor="@android:color/holo_red_light" />`enter code here`
【讨论】:
【参考方案4】:您可以使用图层列表。
之前:
为形状创建 xml - shape_rectangle.xml:
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:right="5dp">
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<solid android:color="@color/my_color" />
<size
android:
android: />
</shape>
</item>
</layer-list>
之后:
在 xml 中,有类似 android:right
的东西。您也可以添加top
,left
,bottom
。通过这种方式,您可以给出例如:在不调整 textView 总高度的情况下向 drawable 左右填充。
【讨论】:
以上是关于Android TextView 可绘制,更改可绘制和文本之间的填充?的主要内容,如果未能解决你的问题,请参考以下文章