在textview中更改可绘制图像的重力
Posted
技术标签:
【中文标题】在textview中更改可绘制图像的重力【英文标题】:Change gravity of image drawable in textview 【发布时间】:2017-07-17 19:07:01 【问题描述】:我在 TextView 中添加了图像 Drawable start。问题是我无法在 TextView 中控制 Drawable 的重力
我需要达到的目标
到目前为止我的成就
这是我的文本视图
<TextView
android:id="@+id/tv_8_digit_check"
android:layout_
android:layout_
android:layout_weight="1"
android:drawablePadding="@dimen/dimen_4"
android:drawableStart="@drawable/ic_validate"
android:text="@string/at_least_8_characters_txt"
android:textColor="@color/white_trans"
android:textSize="12sp" />
关于如何将 Drawable 的重力设置为顶部/开始的任何建议?谢谢
【问题讨论】:
【参考方案1】:尝试使用android:gravity="top"
如果它不起作用,那么像这样使用负边距
android:drawablePadding="-20sp"
另一种方法是在旁边加上ImageView
TextView
在 LinearLayout
里面,这样你就可以应用重力了
【讨论】:
重力顶部在我的情况下不起作用。关于填充,我已经必须为其他目的分配一些填充。 然后去第三个想法 是的,最终做第三个解决方案。我知道该解决方案,但我认为有人可能对此有更好的解决方案。谢谢【参考方案2】:使用 checkbox 代替 textview Drawable,并在可以使用此图像的地方添加自定义 drawable
【讨论】:
你可以更改 CheckBox drawableandroid:button="@drawable/your_drawable" android:gravity="top" android:paddingLeft="6dp"
【参考方案3】:
我建议你把图片放到 imageview 中。将 imageview 和 textview 放在 Linearlayout 中,并将重力设置为top
。也减小文本和图像的大小。
【讨论】:
【参考方案4】:<LinearLayout
android:layout_
android:layout_
android:orientation="horizontal"
android:gravity="top">
<ImageView
android:layout_
android:layout_
android:layout_marginRight="@dimen/dimen_4"
android:src="@drawable/ic_validate"/>
<TextView
android:id="@+id/tv_8_digit_check"
android:layout_
android:layout_
android:layout_weight="1"
android:text="@string/at_least_8_characters_txt"
android:textColor="@color/white_trans"
android:textSize="12sp" />
</LinearLayout>
【讨论】:
我知道这个解决方案会奏效。但问题是嵌套布局。和视图优化,如果它是为了在布局中添加另一个视图,为什么 android 构建复合可绘制对象以设置在同一个 TextView 中? 通常当文本很短时,复合可绘制是个好主意,但是当你想要自定义的东西时它就无济于事了。你可以设置 android:maxLines="1" 并减小文本大小,但是在小屏幕上可能会导致问题。 你也可以在主TextView下为“Character”创建额外的TextView【参考方案5】:使用复选框而不是 textview 并禁用该视图的单击和焦点
<CheckBox
android:gravity="top"
android:button="@drawable/ic_right_managed"
android:clickable="false"
android:focusable="false"
text="I look like a check box but beware I'm not"/>
【讨论】:
以上是关于在textview中更改可绘制图像的重力的主要内容,如果未能解决你的问题,请参考以下文章