美文网首页android
安卓自定义View的技巧记录

安卓自定义View的技巧记录

作者: 奋斗小青年Jerome | 来源:发表于2018-08-22 16:08 被阅读7次

一、基础API的使用

  • Canvas


    Canvas的常规操作API.png

更多详细API请看官方文档

1.记录一些常用但是易混淆的API案例

画线:
当设置画笔(paint)的宽度之后,真正draw时,坐标原点在Y轴上是去掉了线宽的一半,而不是从直线的最左下角开始的,这一点尤其是在画笔宽度设置过大时很明显

  private void initView(Context context) {
        mPaint = new Paint();
        mPaint.setColor(Color.RED);
        mPaint.setAntiAlias(true);
        mPaint.setStrokeWidth(10);
    }


    @Override
    protected void onDraw(Canvas canvas) {
        super.onDraw(canvas);
        canvas.drawLine(50,50,300,50,mPaint);
    }
drawLine的坐标.png

画矩形:画矩形时,画笔宽度对矩形的宽度没有影响

矩形.png image.png

画圆弧
canvas.drawArc()接收的前部分参数,可以是坐标,也可以是矩形,它其实就是一个矩形的内切圆


image.png
上面的代码绘制出来的圆弧
可以看到,绿色矩形坐标分别为:左上角(150,150),右下角(300,300),那么红色圆弧就是其内切圆
startAngle是圆弧绘制的起始位置,0°即时钟的三点钟位置,扫描的方向跟时钟方向一致
注意:画圆弧同样要注意画笔的宽度,某些情况,矩形坐上右下的坐标原点需要减掉画笔宽度

画路径
drawPath涉及的API主要是moveTo和lineTo,moveTo是将path移动到某个点,lineTo是沿着坐标进行绘制,并连接下一个坐标点,形成路径
path其实是一个很伟大的api,能够做非常多炫酷的东西,案例给出了pathMeasure结合属性动画,得到一个path动画
PathMeasuer结合Path来做炫酷的path动画

image.png
image.png

利用pathMeasure进行动画

        //path进行测量之后,每个比例下的path片段被存放在这个dst中
        mDst = new Path();
        mPathMeasure = new PathMeasure();

        mPath.reset();
        mPath.moveTo(mPathStartX, mPathStartY);
        mPath.lineTo(mPathStopX1, mPathStopY1);
        mPath.lineTo(mMPathStop2X, mMPathStop2Y);
        mPath.lineTo(mPathStop3X, mPathStop3Y);
        //测量path片段
        mPathMeasure.setPath(mPath, false);
        mPathLength = mPathMeasure.getLength();

`
        mDst.reset();
        //解决硬件加速的bug
        mDst.lineTo(0, 0);
        //一个变化因子内,path的长度
        float stop = mPathLength * mRate;
        mPathMeasure.getSegment(0, stop, mDst, true);
        canvas.drawPath(mDst, mPathPaint);
使用pathMeasure做的下拉刷新动画

相关文章

  • 学习自定义View的一些文章

    安卓自定义View基础:坐标系 安卓自定义View基础:角度弧度 安卓自定义View基础:颜色 Android自定...

  • 安卓自定义View教程-1

    基础篇 安卓自定义View基础 - 坐标系 安卓自定义View基础 - 角度弧度 安卓自定义View基础 - 颜色...

  • 安卓画笔setShadowLayer与SetMaskFilter

    安卓自定义 View 踩坑笔记,特作文记录 安卓 Paint 类用于自定义 View 时↑这两个方法能用来干嘛我就...

  • [转]自定义View的学习

    原文连接 如何关闭硬件加速 自定义View 基础篇 安卓自定义View基础 - 坐标系 安卓自定义View基础 -...

  • 自定义View教程目录

    参考安卓自定义View教程目录

  • 安卓自定义View的技巧记录

    一、基础API的使用 CanvasCanvas的常规操作API.png 更多详细API请看官方文档 1.记录一些常...

  • Android View的滑动方式

    自定义View是安卓进阶的基础,是安卓开发者不得不学习的知识点,而酷炫的自定义View效果也是离不开View的滑动...

  • Android Touch System(一)

    前言 之前写了一篇文章是关于自定义控件的。在学习自定义view的时候顺便把安卓的touch system(安卓触摸...

  • android开发之简单的自定义view

    自定义view是安卓开发进阶中的重要阶段。所以想在这方面多花些时间看看,写写。 自定义view的步骤: 1、自定义...

  • 自定义View之组合View

    前言 自定义View是安卓开发中比较重要的一环,很多地方都需要用到自定义View。而自定义View比较常见的一种形...

网友评论

    本文标题:安卓自定义View的技巧记录

    本文链接:https://www.haomeiwen.com/subject/kcxyiftx.html