RadioButton解决文字和drawableleft和文字一起时不居中

/**
 * 解决文字和drawableleft和文字一起时不居中。要设置  android:background="@null"android:button="@null"
 * @author zhousheng
 *
 */
public class MDMRadioButton extends RadioButton {

	public MDMRadioButton(Context context, AttributeSet attrs, int defStyle) {
		super(context, attrs, defStyle);
		// TODO Auto-generated constructor stub
	}

	public MDMRadioButton(Context context, AttributeSet attrs) {
		super(context, attrs);
		// TODO Auto-generated constructor stub
	}

	public MDMRadioButton(Context context) {
		super(context);
		// TODO Auto-generated constructor stub
	}

	@Override
	protected void onDraw(Canvas canvas) {
		//获取设置的图片
		Drawable[] drawables = getCompoundDrawables();
		if (drawables != null) {
			//第一个是left
			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;
				int y = getWidth();
				canvas.translate((getWidth() - bodyWidth) / 2, 0);
			}
		}
		super.onDraw(canvas);
	}
}

使用:

<com.maidoumi.merchant.widget.MDMRadioButton

android:id="@+id/rb_main_table"

style="@style/main_radiobtn_style"

android:checked="true"

android:drawableLeft="@drawable/ic_back"

android:text="@string/main_table" />

时间: 2024-10-12 21:24:07

RadioButton解决文字和drawableleft和文字一起时不居中的相关文章

2017-3-14文章名 css解决标题背景 不显示文字

2017-3-14文章名 css解决标题背景 不显示文字 标签 text-indent: 100%; white-space: nowrap; overflow: hidden; 隐藏文字 以图代字

div css每行文字显示一半 同时文字字体重叠显示不全解决方法

CSS DIV布局中出现单行或多行文字的每行文字内容不能显示全,上下行文字有一点点重叠现象,文字字体只显示一半解决方法,在低版本IE特别明显文字字体显示不全,在谷歌浏览器等高版本IE浏览器测试还好些. 新手布局时候特别爱出现DIV盒子里文字字体显示不完整,音乐沙发甚至上下行文字有一点重叠现象. css字体文字重叠显示不完整重叠字体字体文字重叠显示不完整同时有重叠重合效果截图 在DIV+CSS布局中造成这种字体显示不全,音乐沙发显示一半同时多行文字有一点点重叠情况原因:css行高小于CSS字体大小

css解决td单元格内文字溢出

td单元格内显示的文字太长时,总是会自动分行,把表格撑高了,或者密密麻麻的一片,总是不好看~ 俺一开始的做法是用php的mb_substr()来截取定长的字符串,但是,因为中英文字节的差异,比如,10个中文字符就比10个英文字符要长得多,在网页上显示起来就忽长忽短,无法对齐,很不美观~ ~解决办法~ 第一步:<table>标签加样式:style="table-layout:fixed;"(一定要加,否则下面定义的td的样式都不起作用了) 第二步:<td>加样式:

Android TextView 实现文字大小不同和文字颜色不同

效果图如下: 关键代码如下: StringBuffer sb = new StringBuffer(); if(day > 0) { sb.append("<a href=\"1\">"); sb.append(""+day); sb.append("</a>"); sb.append(""+Global.getString(R.string.unit_Day2)); } sb

ffmpeg加文字水印并控制水印显示时间或显示周期

#以下脚本保存成.sh文件运行,不会出现中文乱码问题 网上查到用enable关键字控制,实际是draw #加水印 水印位置由x,y,w,h来控制 #ffmpeg编译时需--enable-libfreetype才能用此功能 #!/bin/bash ffmpeg -y -i jiushu.mpg -acodec libfaac -b:a 30k -ar 44100 -r 15 -ac 2 -s 480x272 -vcodec libx264 -refs 2 -x264opts keyint=150:

python Tkinter 基础添加一个按钮,在按钮上显示文字,并设置文字颜色

code; # Tkinter 基础添加一个按钮,在按钮上显示文字,并设置文字颜色 import tkinter as tk # 面向对象编程 class App(): def __init__(self, master): frame = tk.Frame(master) # 框架??不是很理解 frame.pack() # 创建一个按钮,fg前景色:蓝色 self.testButton = tk.Button(frame, text = "hello", fg = "bl

C# 使用 GDI+ 给图片添加文字,并使文字自适应矩形区域

需求 需求是要做一个编辑文字的页面.用户在网页端写文字,文字区域是个矩形框,用户可以通过下方的拖动条调节文字大小. 如下图: 提交数据的时候前端传文字区域的左上角和右下角定位给后台.因为前端的字体大小单位与后端没什么关系,所以不能直接传字体大小,也就是后端要根据矩形区域以及文字内容来自己推算用什么样的字体大小合适. 简单说就是知道文字的矩形区域,以及文字内容,要让文字内容根据矩形区域大小调整到适合的字体大小能比较合适地填满这个区域. 分析&思路 Graphics 类有个 MeasureStrin

aspose word for java去除目录文字蓝色样式以及文字下方蓝色下划线

//去除目录文字蓝色样式以及文字下方蓝色下划线 for(FieldStart field: (Iterable<FieldStart>)doc.getChildNodes(NodeType.FIELD_START, true)){ if (field.getFieldType() == FieldType.FIELD_HYPERLINK) { FieldHyperlink hyperlink = (FieldHyperlink)field.getField(); //判断是否是目录 if (h

CAD关于文字样式对当前文字样式操作(com接口c#语言)

当前文字样式表示向DWG数据库添加一个文字对象时,使用的默认的文字样式,通过系统变量TEXTSTYLE操作,系统变量设置参考: http://www.mxdraw.com/help_2_48.html 设置当前文字样式C# // 添加文字样式 axMxDrawX1.AddTextStyle1("MyTextStyle", "txt.shx", "hztxt.shx", 1); // 得到当前数据库 MxDrawDatabase database