textview 使drawable与text一起居中的textview,这里仅支持drawableleft
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的更多相关文章
- 它们的定义TextView使之具有跑马灯的效果
一.引入问题 使用通用textview快乐效应,焦点事件不启动滚动,button目前的焦点事件,但丑,因此,需要定制TextView 天生焦点 个textview FocusedTextView.ja ...
- JavaScript通过preventDefault()使input[type=text]禁止输入但保留光标
一.说明 取消事件的默认动作. 该方法将通知 Web 浏览器不要执行与事件关联的默认动作(如果存在这样的动作).例如,如果 type 属性是 "submit",在事件传播的任意阶段 ...
- android 自定义空间 组合控件中 TextView 不支持drawableLeft属性
android 自定义空间 组合控件中 TextView 不支持drawableLeft属性.会报错Caused by: android.view.InflateException: Binary X ...
- textview设置drawable
textview可以在上下左右四个方向添加图片,同时也可以动态改变这些图片: 下面有我写的一个例子: 在xml文件中: <TextView android: ...
- 对TextView设置drawable,用setCompoundDrawables方法实现
在上一项目上需要对TextView在xml文件中设置的drawableLeft的图片进行更改,查询了资料好久也没有找到解决办法,如下代码所示: commentTV.setCompoundDrawabl ...
- jQery使网页在显示器上居中显示适用于任何分辨率
这篇文章主要介绍了jQery使网页在任何分辨率的显示器上居中显示的方法,需要的朋友可以参考下 检测屏幕宽度,并设置为id为frame的div宽度, 根据自己网页的最大宽度来调节,小demo最大宽度为1 ...
- Android TextView : “Do not concatenate text displayed with setText”
参考:http://stackoverflow.com/questions/33164886/android-textview-do-not-concatenate-text-displayed-wi ...
- 使用java代码,动态给TextView设置drawable
Drawable country = context.getResources().getDrawable(drawableId); country.setBounds(0, 0, country.g ...
- HTML5 Canvas Text文本居中实例
1.代码: <canvas width="700" height="300" id="canvasOne" class="c ...
随机推荐
- mvc 页面方法学习-RenderBody方法
教程地址:https://docs.microsoft.com/zh-cn/aspnet/mvc/overview/getting-started/introduction/adding-a-view
- Navicat Premium 连接Oracle 数据库
昨天开始工作的时候听同事说:Navicat可以连各种数据库,包括Oracle,头一次听说!!!很是尴尬.现在记录一下怎么用Navicat连接Oracle.最重要的是,Navicat只支持32的Orac ...
- 小学四则运算结对项目报告(GUI)
小学四则运算结对项目报告(GUI) 一.Coding.Net项目地址: https://git.coding.net/wsshr/Calculation.git 二.PSP表格(完成前): PSP 任 ...
- Java分布式应用
分布式计算就是通过计算机网络将计算工作分布到多台主机上,多个主机一起协同完成工作. 我试着列一下相关知识吧. 网络通讯,网络是分布式的基础,对分布式的理解建立在对网络的理解上,包括: OSI模型的7层 ...
- 由于MDK5.0A没有STM32F103程序错误 stm32f10x.h(298): error: #67: expected a "}"
转自:http://blog.163.com/lby147612@126/blog/static/17041045220150130438428/ 由于MDK4.72A没有STM32F030,所以升级 ...
- Spring 中使用Properties文件
Spring提供了加载Properties文件的工具类:org.springframework.beans.factory.config.PropertyPlaceholderConfigurer. ...
- js数组遍历 千万不要使用for...in...
昨天做个下拉框 扩充了一下数组的方法 Array.prototype.remove = function (val) { var index = this.indexOf(val); if (inde ...
- 微信小程序使用函数的三种方法
使用来自不同页面的函数 函数写在util.js页面 function formatTime(date) { var year = date.getFullYear() var month = date ...
- 有意思的Alias参数
1. 最简单的方式,运行正常. PS C:\> Get-Service -Name BITS -ComputerName localhost 2. 自己构造一个对象,试图通过管道将主机名传递下去 ...
- 第211天:git和github的区别和使用详解
一.git 1.什么是git 它是一个源代码管理工具,在一个项目中,凡是由开发人员编写的都算是源代码,源代码有必要管理起来,让源代码可以被追溯,主要记录每次变更了什么,谁主导这次变化.人为的维护比较麻 ...