今天偶然找到了api00 大大写的博客,感觉很适合我这种新手,便准备从今天起去读读他的博客,并把一些有用的东西记录下来,以免忘记,在此感谢api00
手机屏幕大小的获取:
public static Point getSizeNew(Context ctx) {
WindowManager wm = (WindowManager) ctx.getSystemService(Context.WINDOW_SERVICE);
DisplayMetrics dm = new DisplayMetrics();
wm.getDefaultDisplay().getMetrics(dm);
Point size = new Point();
size.x = dm.widthPixels;
size.y = dm.heightPixels;
return size;
}
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);
}
float scale = context.getResources().getDisplayMetrics().density; 这个就是px与dp的比值
而且我看了才知道,原来dp是只能用在xml中的,px是用在代码里的,而sp用于字体,且用sp标注的字体,会随手机自己更改字体大小的改变而改变,dp的不会
以前并没有这个概念,汗。。。
关于颜色
在代码中使用8位的16进制,如0xffffffff,如果用6位编码,则会默认透明,在xml中,用6位编码,默认不透明,如#ffffff,如果在代码中使用colors.xml中设置的颜色,可按如下方式获取 setTextColor(getResources().getColor(R.color.black));
关于drawable
- <?xml version="1.0" encoding="utf-8"?>
- <selector
- xmlns:android="http://schemas.android.com/apk/res/android">
- <item android:state_pressed="true" android:drawable="@drawable/common_jia_selected" />
- <item android:drawable="@drawable/common_jia_normal" />
- </selector>