Android自定义TextView实现drawableLeft内容居中
作者:lqh 发布时间:2022-04-24 18:20:14
标签:Android,TextView,drawableLeft
如何实现使用TextView的DrawableLeft使图片和文字居中显示呢???
代码如下:
1.首先自定义一个类,继承TextView
package com.test.signcalendar.weight;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.drawable.Drawable;
import android.util.AttributeSet;
import android.widget.TextView;
/**
* 自定义TextView,实现drawableLeft可以和文字一起居中
* @author HLQ
* @createtime 2016年3月20日04:14:36
*
*/
public class DrawableCenterTextView extends TextView {
public DrawableCenterTextView(Context context, AttributeSet attrs,
int defStyle) {
super(context, attrs, defStyle);
}
public DrawableCenterTextView(Context context, AttributeSet attrs) {
super(context, attrs);
}
public DrawableCenterTextView(Context context) {
super(context);
}
@Override
protected void onDraw(Canvas canvas) {
Drawable[] drawables = getCompoundDrawables();
if (drawables != null) {
Drawable drawableLeft = drawables[0];
if (drawableLeft != null) {
float textWidth = getPaint().measureText(getText().toString());
int drawablePadding = getCompoundDrawablePadding();
int drawableWidth = 0;
drawableWidth = drawableLeft.getIntrinsicWidth();
float bodyWidth = textWidth + drawableWidth + drawablePadding;
canvas.translate((getWidth() - bodyWidth) / 2, 0);
}
}
super.onDraw(canvas);
}
}
2.之后在xml布局文件中直接引用即可。。。
<com.test.signcalendar.weight.DrawableCenterTextView
android:id="@+id/textView1111"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:drawableLeft="@drawable/fmhp_mine_health_plan_signcalendar_finish_status_bg"
android:drawablePadding="5dp"//给图片和文字之间设置填充
android:text="都完成"
android:textColor="#333333"
android:textSize="12sp" />
3。ok实现效果 如下。。。
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
来源:http://blog.csdn.net/u012400885/article/details/50949115
0
投稿
猜你喜欢
- 本文实例讲述了Java Spring开发环境搭建及简单入门示例。分享给大家供大家参考,具体如下:前言虽然之前用过Spring,但是今天试着去
- 摘要:Java8通过Function获取字段名,解决硬编码,效果类似于mybatis-plus的LambdaQueryWrapper。本文总
- 一、Statementimport java.sql.*;public class TestJDBC { public stati
- 在springboot中,默认继承好了一套完好的redis包,可以直接使用,但是如果使用中出了错不容易找到错误的原因,因此这里使用自己配置的
- 这篇文章主要介绍了简单了解Java方法的定义和使用实现详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要
- 优点1.装饰类和被装饰类可以独立发展,不会相互耦合,装饰模式是继承的一个替代模式,装饰模式可以动态扩展一个实现类的功能。缺点2.多层装饰比较
- 本文实例为大家分享了Android利用Canvas标点画线,并加入位移动画的具体代码,供大家参考,具体内容如下1.背景继上次公司需求实现Ca
- 在项目中使用Maven管理jar包依赖,往往会出现以下状况:1、国内访问maven默认远程中央镜像特别慢;2、使用阿里的镜像替代远程中央镜像
- 本文讲述的是Android中RelativeLayout、FrameLayout的用法。具体如下:RelativeLayout是一个按照相对
- 一直以来不是怎么清楚自旋锁,最近有点时间,好好的学习了一下;所谓的自旋锁在我的理解就是多个线程在尝试获取锁的时候,其中一个线程获取锁之后,其
- 本文实例为大家分享了Android实现京东上滑效果的具体代码,供大家参考,具体内容如下前言:现在很多app首页的结构都有头部广告,上滑固定t
- RecyclerView已经出来很久了,许许多多的项目都开始从ListView转战RecyclerView,那么,上拉加载和下拉刷新是一件很
- 本文实例形式详述了Java实现一个程序运行时的启动窗口效果,如常用的Microsoft Word、 Borland JBuilder 等,这
- 在开发中常常使用到刷新分页,这里实现一个 RecyclerView 的简单的刷新分页操作,测试效果见文末,实现过程参考如下:实现思路加载更多
- 本文实例为大家分享了Android文本视图TextView实现聊天室的具体代码,供大家参考,具体内容如下Math.random()生成随机数
- 在 Spring 中,有以下三种方式来创建数据源:通过 JNDI 获取应用服务器中的数据源;在 Spring 容器中配置数据源;通过代码来创
- 本文实例讲述了java可变参数当做数组处理的方法.分享给大家供大家参考,具体如下:java可变参数当做数组处理ava1.5增加了新特性:可变
- 上篇文章给大家介绍了springboot全局字符编码设置解决乱码问题 感兴趣的朋友可以点击查看,下面通过两种方式给大家介绍Spri
- 1.刷新maven项目2.清理idea缓存3.maven clean install4.重新bulid5.如果使用了lombok插件开启之后
- 上篇文章介绍了Spring boot初级教程:spring boot(一):入门篇,方便大家快速入门、了解实践Spring boot特性;本