1、屏幕尺寸信息
1)屏幕参数
- 屏幕大小:对角线长度,单位,寸
- 分辨率:手机屏幕像素点个数,720x1280
- dpi:每英寸像素
2)系统屏幕密度
密度 | ldpi | mdpi | hdpi | xhdpi | xxhdpi |
---|---|---|---|---|---|
密度值 | 120 | 160 | 240 | 320 | 480 |
分辨率 | 240x320 | 320x480 | 480x480 | 720x1280 | 1080x1920 |
3)独立像素密度
在mdpi下:1dp=1px
各个分辨率换算比例ldpi : mdpi :hdpi:xhdpi:xxhdpi为3:4:6:8:12
4)单位转换工具类
/**
* 常用单位转换的辅助类
*/
public class DisplayUtil {
/**
* dp转px
*/
public static int dp2px(Context context, float dpVal) {
return (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP,
dpVal, context.getResources().getDisplayMetrics());
}
/**
* sp转px
*/
public static int sp2px(Context context, float spVal) {
return (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_SP,
spVal, context.getResources().getDisplayMetrics());
}
/**
* px转dp
*/
public static float px2dp(Context context, float pxVal) {
final float scale = context.getResources().getDisplayMetrics().density;
return (pxVal / scale);
}
/**
* px转sp
*/
public static float px2sp(Context context, float pxVal) {
return (pxVal / context.getResources().getDisplayMetrics().scaledDensity);
}
}
2、2D绘图基础
(1)Canvas对象
drawPoint,drawLine,drawRect,drawRoundRect,drawCircle,drawArc,drawOval,drawText,drawPosText(在指定位置绘制文本),drawPath(绘制路径)
(2)Paint对象
setAntiAlias:设置画笔的锯齿效果
setColor:设置画笔的颜色
setARGB:设置画笔的A、R、G、B值
setAlpha:设置画笔的透明度值
setTextSize:设置字体大小
setStyle:设置画笔的效果(空心STROKE或者实心FILL)
setStrokeWidth:设置空心边框的宽度
3、Android XML绘图
这里不做详细记录,官网的Drawable Resources有详细且齐全介绍
4、Android绘图技巧
1)Canvas 画布
四个主要方法:
save:保存画布,将之前绘制的内容保存起来;
restore:合并画布,将save方法之后绘制的内容与之前绘制的内容合并起来;
translate:移动画布,其实是画布所在的坐标系的移动;
rotate:旋转画布,其实是画布所在的坐标系的旋转。
2)Layer 图层
在Android中图层是基于栈的结构来管理的,通过调用saveLayer、saveLayerAlpha方法来创建图层,使用restore、restoreToCount方法将一个图层入栈。入栈的时候,后面所有的操作都发生在这个图层上,而出栈的时候则会把图像绘制在上层Canvas上。
5、Android图像处理之色彩特效处理
色彩特效处理、图形特效处理、画笔特效处理
内容很多很庞杂,但是很有意思,以后学习,相机的各种特效看完这节都能自己实现了
6、SurfaceView
之前有过记录Android SurfaceView简介