Android群英传之Android绘图机制与处理技巧

1、屏幕尺寸信息

1)屏幕参数

  • 屏幕大小:对角线长度,单位,寸
  • 分辨率:手机屏幕像素点个数,720x1280
  • dpi:每英寸像素

2)系统屏幕密度

密度ldpimdpihdpixhdpixxhdpi
密度值120160240320480
分辨率240x320320x480480x480720x12801080x1920

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简介

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值