package cc.hent.www.ramo_cmedcial.CustomView;

import android.content.Context;
import android.graphics.Canvas;
import android.graphics.drawable.Drawable;
import android.support.annotation.Nullable;
import android.util.AttributeSet; /**
* Created by he cs on 2018/1/2.
* drawable与text一起居中的textview
*/ public class DrawableTextView extends android.support.v7.widget.AppCompatTextView {
public DrawableTextView (Context context) {
this(context,null);
} public DrawableTextView (Context context, @Nullable AttributeSet attrs) {
this(context, attrs,-1);
} public DrawableTextView (Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
} @Override
protected void onDraw (Canvas canvas) { Drawable[] compoundDrawables = getCompoundDrawables();
if (compoundDrawables != null) {
Drawable left = compoundDrawables[0];
if (left != null) {
float textWidth = getPaint().measureText(getText().toString());
int compoundDrawablePadding = getCompoundDrawablePadding();
//获取drawable的宽度 Intrinsic 内在的
int leftWidth = left.getIntrinsicWidth(); float bodyWidth = textWidth+compoundDrawablePadding+leftWidth; canvas.translate((getWidth()-bodyWidth)/2,0);
}
} //一定要,后调用
  super.onDraw(canvas);
} }

重点在于重写ondraw,其他属性同textview就可以,注意,在使用gravity的时候,center_vertical即可

textview 使drawable与text一起居中的textview,这里仅支持drawableleft的更多相关文章

  1. 它们的定义TextView使之具有跑马灯的效果

    一.引入问题 使用通用textview快乐效应,焦点事件不启动滚动,button目前的焦点事件,但丑,因此,需要定制TextView 天生焦点 个textview FocusedTextView.ja ...

  2. JavaScript通过preventDefault()使input[type=text]禁止输入但保留光标

    一.说明 取消事件的默认动作. 该方法将通知 Web 浏览器不要执行与事件关联的默认动作(如果存在这样的动作).例如,如果 type 属性是 "submit",在事件传播的任意阶段 ...

  3. android 自定义空间 组合控件中 TextView 不支持drawableLeft属性

    android 自定义空间 组合控件中 TextView 不支持drawableLeft属性.会报错Caused by: android.view.InflateException: Binary X ...

  4. textview设置drawable

    textview可以在上下左右四个方向添加图片,同时也可以动态改变这些图片:   下面有我写的一个例子: 在xml文件中:  <TextView                 android: ...

  5. 对TextView设置drawable,用setCompoundDrawables方法实现

    在上一项目上需要对TextView在xml文件中设置的drawableLeft的图片进行更改,查询了资料好久也没有找到解决办法,如下代码所示: commentTV.setCompoundDrawabl ...

  6. jQery使网页在显示器上居中显示适用于任何分辨率

    这篇文章主要介绍了jQery使网页在任何分辨率的显示器上居中显示的方法,需要的朋友可以参考下 检测屏幕宽度,并设置为id为frame的div宽度, 根据自己网页的最大宽度来调节,小demo最大宽度为1 ...

  7. Android TextView : “Do not concatenate text displayed with setText”

    参考:http://stackoverflow.com/questions/33164886/android-textview-do-not-concatenate-text-displayed-wi ...

  8. 使用java代码,动态给TextView设置drawable

    Drawable country = context.getResources().getDrawable(drawableId); country.setBounds(0, 0, country.g ...

  9. HTML5 Canvas Text文本居中实例

    1.代码: <canvas width="700" height="300" id="canvasOne" class="c ...

随机推荐

  1. angularJS1笔记-(15)-自定义指令(accordion伸缩菜单原始实现)

    index.html: <!DOCTYPE html> <html lang="en"> <head> <meta charset=&qu ...

  2. 上传插件(WebUploader)

    官网:http://fex.baidu.com/webuploader/插件下载:https://github.com/fex-team/webuploader/releases/download/0 ...

  3. 补发9.28“天天向上”团队Scrum站立会议

    组长:王森 组员:张金生 张政 栾骄阳 时间:2016.09.28 地点:612寝 组员 已完成 未完成 王森 搭建初步原型 完善原型 张金生 更新UI设计 生成应用界面原型 张政 初步设计框架图 完 ...

  4. PAT 甲级 1146 Topological Order

    https://pintia.cn/problem-sets/994805342720868352/problems/994805343043829760 This is a problem give ...

  5. python读取文件解码失败

    python2.7 urllib2 抓取新浪乱码 中的: 报错的异常是 UnicodeDecodeError: 'gbk' codec can't decode bytes in position 2 ...

  6. ANR基础

    转自:http://blog.sina.com.cn/s/blog_c0de2be70102wd1k.html 1.ANR basic knowledge ANR分类: Key Dispatch Ti ...

  7. Java并发编程实战2-线程安全

    1. 定义 一个类是线程安全的,是指在被多个线程访问时,类可以持续进行正确的行为. 2. WHY 我们想要的是线程安全的程序,为什么在线程安全的开始讲线程安全的类呢? 编写线程安全的代码,本质上就是管 ...

  8. 更新ffmpeg

    今天对公司线上的几台机器做了下ffmpeg的更新,没有什么技术含量,还是简单记录下,做个流水账~哈哈 软件包获取方式 官方网站:https://ffmpeg.org/download.htmlgith ...

  9. 【大数据】MapTask工作机制

    1.MapTask工作机制 整个map阶段流程大体如上图所示.简单概述:input File通过getSplits被逻辑切分为多个split文件,通通过RecordReader(默认使用lineRec ...

  10. BZOJ4561 JLOI2016圆的异或并(扫描线+平衡树)

    考虑一条扫描线从左到右扫过这些圆.观察某一时刻直线与这些圆的交点,可以发现构成一个类似括号序列的东西,括号的包含关系与圆的包含关系是相同的.并且当扫描线逐渐移动时,括号间的相对顺序不变.于是考虑用se ...