Android 妙用TextView实现左边文字,右边图片

有时候,需要文字在左边,右边有个箭头,我个人之前会有两种做法:

使用线性布局来实现

或者使用约束布局,一个左对齐,一个右对齐

这几天突然想到是否可以使用TextView的设置图标的方式实现,研究发现确实可以实现我的需求,也是记录下

文字和图标左右显示

效果:

代码:

java 复制代码
<TextView
	android:id="@+id/tvRate"
	style="@style/textStyle18"
	android:padding="20dp"
	android:layout_width="match_parent"
	android:layout_height="wrap_content"
	android:drawableTint="@color/white"
	android:drawableEnd="@mipmap/universal_right"
	android:text="Rate our app"/>
  • drawableTint 设置图标着色
  • drawableEnd 设置右边图标

如果想要文字和图标之间有间距,可以通过设置drawablePadding属性来实现

drawablePadding用来设置图标的内边距

当然,因为整个都是一个TextView,所以文字宽度就比较好固定,默认到达图标左边会自动换行

也可以设置限制一行,都可以

文字和图标上下显示

除了上面的左右显示,也可以上下显示,这里就给个上下显示的实现效果

效果:

代码:

java 复制代码
<TextView	
	android:gravity="center_horizontal"
	android:layout_width="match_parent"
	android:layout_height="wrap_content"
	android:drawableTop="@mipmap/function_jiasu"
	android:text="Boost"
/>

这里因为默认文字不是水平居中的,所以通过gravity设置为水平居中,不然就是文本和图标靠左了

勾选效果

之前也是说过可以通过view的select状态和selector来实现勾选变换图标的效果

如果是简单的勾选效果,用textview也可以搞定,如下效果所示

代码:

java 复制代码
<TextView
	android:id="@+id/tvcheck"
	style="@style/textStyle18"
	android:padding="20dp"
	android:layout_width="match_parent"
	android:layout_height="wrap_content"
	android:drawableEnd="@drawable/selector_node_select"
	android:text="Rate our app"/>

通过代码修改此TextView的isSelect属性即可更改图标效果

总结:上面说的这种方法其实存在一定局限性,比较适合简单的布局,不过可以避免布局层次过多,可以优化布局加载的时间

👀关注公众号:Android老皮!!!欢迎大家来找我探讨交流👀

相关推荐
Anhty2 小时前
叮咚变声器上手实测,iOS短板、安卓悬浮窗使用感受分享
android·人工智能·功能测试·ios·智能手机
方白羽2 小时前
OkHttp 5.3 隐形变更引发的线上偶发崩溃复盘
android·app·客户端
EatFan3 小时前
【实战经验】uni-app使用 SSE 踩坑,EventSource不支持怎么办?
android·后端·ios·uni-app
JMchen4 小时前
第 2 篇|Kotlin 进阶 —— 集合、循环与条件表达式
android·kotlin
律宏阔4 小时前
Android 自定义 Launcher 加载第三方 App Widget
android
律宏阔4 小时前
Android 9 开发板实现系统侧滑返回
android
2601_962293535 小时前
Appium+python自动化(十二)- Android UIAutomator终极定位凶器(超详解)
android·自动化测试·appium·定位·uiautomator
mmsx5 小时前
MapLibre 自定义比例尺:Web 墨卡托屏幕距离换算公式与实现
android·源码·地图·maplibre
可乐鸡翅yeah_5 小时前
HLS CORS 跨域问题完整排查实战,解决 M3U8 与 TS 分片跨域报错
android·ios·音视频·m3u8·音视频在线播放
邪修king6 小时前
Linux系统篇(二十三) 基础 IO:从“文件”到“文件描述符”,彻底理解重定向
android·java·linux