Android 关于自定义TextView的测量
2016-04-23 09:34
337 查看
1.在自定义的TextView 里如何得到文本控件的宽度
2.自定义的TextView ,如何测量文本的高度
String mText = "测试"; int mTextSize = 30; //使用画笔 Paint mPaint = new Paint(Paint.ANTI_ALIAS_FLAG); //设置文本大小 mPaint.setTextSize(mTextSize); private Rect mTextBound = new Rect(); mPaint.getTextBounds(mText, 0, mText.length(), mTextBound); //得到文本宽度 int mTextWidth = (int) mPaint.measureText(mText);
2.自定义的TextView ,如何测量文本的高度
private int measureHeight(int measureSpec) { int mode = MeasureSpec.getMode(measureSpec); int val = MeasureSpec.getSize(measureSpec); int height= 0; switch (mode) { case MeasureSpec.EXACTLY: height= val; break; case MeasureSpec.AT_MOST: case MeasureSpec.UNSPECIFIED: height= mTextBound.height(); break; } height= mode == MeasureSpec.AT_MOST ? Math.min(result, val) : result; return height+ getPaddingTop() + getPaddingBottom(); }
3.如何测量文本的高度
private int measureWidth(int measureSpec) { int mode = MeasureSpec.getMode(measureSpec); int val = MeasureSpec.getSize(measureSpec); int width= 0; switch (mode) { case MeasureSpec.EXACTLY: width= val; break; case MeasureSpec.AT_MOST: case MeasureSpec.UNSPECIFIED: width= mTextWidth; break; } width= mode == MeasureSpec.AT_MOST ? Math.min(width, val) : width; return width + getPaddingLeft() + getPaddingRight(); }
相关文章推荐
- 玩转AndroidStudioIDE
- AndroidStudio GreenDao简单使用Demo
- Android绘图机制与处理技巧
- Android之ExpandableListView
- Android多分辨率适配巧妙方法
- Android xml资源文件中@、@android:type、@*、?、@+含义和区别
- Android开发中的View简介
- Android service后台保活原理相关和测试结果
- Android利用canvas画各种图形 及Paint用法
- Android——Service
- android service被系统回收的解决方法
- Android SERVICE后台服务进程的自启动和保持
- Android——ViewPager滑动背景渐变(自定义view,ViewPager)
- Android ——利用OnDraw实现自定义View(转)
- Android——自定义视图(一)转
- 新一代Android渠道打包工具:1000个渠道包只需要5秒
- 关于Android Animation的setFillBefore、setFillAfter和setFillEnable
- Android:使用adb命令行导出[数据库db3]文件
- 布局点击变色的设置
- Android——用PagerAdapter实现View滑动效果