android 杂七杂八

来源:互联网 发布:午夜tv的软件 编辑:程序博客网 时间:2024/05/21 22:49



EditText 被软键盘遮挡:

在AndroidManifest对应的activity中添加属性:

android:windowSoftInputMode="stateUnchanged|adjustResize" 然后在布局文件中用scroView 包裹一下布局




代码中设置字体大小:

刚开始的时候可能都是这样写 textView.setTextSize(22);

但是这样是不对的,首先单位不会一目了然,那么可以这样写:

setTextSize(TypedValue.COMPLEX_UNIT_PX,22); //22像素 
setTextSize(TypedValue.COMPLEX_UNIT_SP,22); //22SP 
setTextSize(TypedValue.COMPLEX_UNIT_DIP,22);//22DIP 

这里注意setTextSize()默认是SP单位。那么如果要通过XML文件来配置的话,可以这样:

在res->values 中创建dimen 配置:

<dimen name="my_text_size">20px</dimen>

然后代码中:

textView.setTextSize(TypedValue.COMPLEX_UNIT_PX,

getResources().getDimensionPixelSize(R.dimen.my_text_size));

这里用到了一个方法:

getResources().getDimensionPixelSize()

顺带着说一下相关方法的区别:

getDimension()是基于当前DisplayMetrics进行转换,获取指定资源id对应的尺寸。文档里并没说这里返回的就是像素,要注意这个函数的返回值是float,像素肯定是int。

getDimensionPixelSize()与getDimension()功能类似,不同的是将结果转换为int,并且小数部分四舍五入。

getDimensionPixelOffset()与getDimension()功能类似,不同的是将结果转换为int,并且偏移转换(offset conversion,函数命名中的offset是这个意思)是直接截断小数位,即取整(其实就是把float强制转化为int,注意不是四舍五入哦)。

如果getDimension()返回结果是20.5f,那么getDimensionPixelSize()返回结果就是21,getDimensionPixelOffset()返回结果就是20。

至此完毕。

0 0
原创粉丝点击