总是感觉基础知识不够扎实,所以我决定来一次Android基础知识大扫荡。内容主要以参考网上的优秀博文和自己平时的一些心得,加油吧。Android最常用到的单位有三种:px(像素)、dp(也可以说是dip)、sp(和dp一样但是适用于设置字体的大小)。
平时设置大小的时候尽量使用dp来设置,这样可以让布局文件在不同的分辨率的手机上显示的效果大致相同。还有一点是px和dp的装换,装换的代码如下
/** * 根据手机的分辨率从 dp 的单位 转成为 px(像素) 。 */ public static int dip2px(Context context, float dpValue) { final float scale = context.getResources().getDisplayMetrics().density; return (int) (dpValue * scale + 0.5f); } /** * 根据手机的分辨率从 px(像素) 的单位 转成为 dp 。 */ public static int px2dip(Context context, float pxValue) { final float scale = context.getResources().getDisplayMetrics().density; return (int) (pxValue / scale + 0.5f); } 这里的方法设置成静态的,搞一个Util类就可以直接在代码里面引用了,非常的方便。代码中的 "+ 0.5f" 是因为java中的浮点型强转为整型时,是只保留整数部分,加上这个0.5f可以达到四舍五入的效果。还有一个问题是为什么设置字体的时候要使用sp而不建议使用px呢?这是因为使用sp可以随着系统字体 小、普通、大、超大而随之改变,dp就没有这样的效果,所以对字体的大小设置效果的时候建议使用的是sp为单位。
新闻热点
疑难解答