android---重写textview自适应屏幕分辨率,压缩字体大小
2016-04-27 19:56
543 查看
继承TextView,在onlayout方法里面循环去判断字体的总长度是否大于控件的宽度,如果大,那么继续压缩,直到小于或者到达设定的最小值,最大值同理。 package com.example.mytextview; import android.content.Context; import android.graphics.Paint; import android.util.AttributeSet; import android.util.Log; import android.widget.TextView; public class TextAutoResize extends TextView { private static final float MIN_TEXT_SIZE = 25.0F; private static final float MAX_TEXT_SIZE = 55.0F; public TextAutoResize(Context paramContext) { super(paramContext); } public TextAutoResize(Context paramContext, AttributeSet paramAttributeSet) { super(paramContext, paramAttributeSet); } /** * 重新设置字体的大小 */ private void resize() { Paint localPaint = new Paint(); //获得控件的宽度 int i = getWidth(); Log.i("hei",getHeight()+"---"+getTextSize()); //获得字体的大小 float f1 = getTextSize(); //画笔设置字体的大小 localPaint.setTextSize(f1); //计算控件中文字的总长度 float f2 = localPaint.measureText(getText().toString()); while (true) { //字体最小控制在15.0F while (true) { setTextSize(0, f1); //在最大值和最小值之间,正常压缩调整 if (MAX_TEXT_SIZE >= f1&&f1>=MIN_TEXT_SIZE) { break; } else { //超过最大程度 if(f1>MAX_TEXT_SIZE) { f1 = MAX_TEXT_SIZE; } //小于最小程度 if(f1<MIN_TEXT_SIZE) { f1 = MIN_TEXT_SIZE; } } } localPaint.setTextSize(f1); //对字体进行调整,每次-1.0F f1 -= 1.0F; //重新获取文字的总长度 f2 = localPaint.measureText(getText().toString()); //已经压缩到最小 if((f1 ==MIN_TEXT_SIZE-1)&&i<f2) { break; } //字体总长度小于控件宽度,不用进行改变 if (i >= f2) break; } } @Override protected void onLayout(boolean paramBoolean, int paramInt1, int paramInt2, int paramInt3, int paramInt4) { super.onLayout(paramBoolean, paramInt1, paramInt2, paramInt3, paramInt4); resize(); } } |
相关文章推荐
- android---重写EditText自适应屏幕分辨率,压缩字体大小
- android---世界时区列表
- Android 批量上传图片进度回调
- android---对SharePreferences的封装
- android---瀑布流gridview
- android---防止ListView数据错乱的方法
- android---自定义数字选择器
- android---ScrollView中嵌套ListView
- Android ImageButton,Button,CheckBox等抢了原有View的点击事件 点击事件冲突问题
- android---后台代发短信
- android---service的启动,和activity的通信
- android---broadcastReceiver广播机制
- android---在ScrollView中嵌套ViewPager
- android---多线程(启动,暂停,终止)
- android---控件隐藏与显示动画
- android---图片获得与裁剪
- android---仿淘宝下单PopWindow
- Android 图片滤镜工具——高斯模糊
- android---下拉ListView(顺畅版)
- android---gesture手势识别类