自定义 View API 汇总

作者: Geekholt | 来源:发表于2020-05-09 19:17 被阅读0次

    如需转载请评论或简信,并注明出处,未经允许不得转载

    前言

    现在的app的ui交互效果越来越复杂,很多android开发工程师,每次ui交互评审的时候最常说的几句话就是”这个不行“、”这个做不到“、”做这个可能需要花很久“。为什么会出现这个现象呢,其实就是因为我们对自定义View不是非常熟练。那为什么会对自定义View不熟悉呢?可能是大部分android开发工程师平时以写业务居多,而自定义View涉及到的API非常多,记不熟也是非常正常的(其实我自己就是属于这类人)。所以最近看到抛物线老师的自定义View系列文章,觉得写的很不错,于是跟着文章,写了一个Demo,汇总了几乎所有常用的自定义View相关的API以及他们的使用方式和使用效果。为什么要写这个Demo呢,一方面是巩固自己的学习成果,另一方面是觉得一个复杂的自定义View,实际上都可以拆分成一个个小的组成部分,当这些小的组成部分都被你掌握了,你就不觉得自定义View有多么难了

    项目地址

    https://github.com/Geekholt/Practice-CustomView/tree/master

    APK下载地址

    https://github.com/Geekholt/Practice-CustomView/blob/master/app-debug.apk

    绘制基础

    涂颜色 drawColor
    画圆 drawCircle
    画矩形 drawRect
    画点 drawPoint
    画椭圆 drawOval
    画直线 drawLine
    画圆角矩形 drawRoundRect
    画弧形和扇形 drawArc
    画心形 drawPath
    画直方图
    画饼图

    Paint详解

    线性渐变着色器 LinearGradient
    辐射渐变着色器 RadialGradient
    扫描渐变着色器 SweepGradient
    Bitmap着色器 BitmapShader
    混合着色器 ComposeShader
    颜色过滤 LightingColorFilter
    去除饱和度 ColorMatrixColorFilter
    图像混合 Xfermode
    线头形状 setStrokeCap
    拐角形状 setStrokeJoin
    拐角的延长线的最大值 setStrokeMiter
    图形的轮廓效果 setPathEffect
    阴影 setShadowLayer
    模糊效果 setMaskFilter
    获取实际path FillPath
    获取实际path TextPath

    文字绘制

    基础文字 drawText
    文字换行 StaticLayout
    设置文字大小 setTextSize
    设置字体 setTypeface
    字体加粗 setFakeBoldText
    字体删除线 setStrikeThruText
    字体下划线 setUnderlineText
    文字倾斜 setTextSkewX
    文字宽度 setTextScaleX
    对齐方式 setTextAlign
    获取推荐的行距 getFontSpacing
    测量文字宽度 measureText
    文字居中对齐 getTextBounds
    文字基于baseline对齐 FontMetrics

    范围裁切和几何变换

    区域裁剪 canvas.clipRect
    路径裁剪 canvas.clipPath
    普通平移 canvas.translate
    普通缩放 canvas.scale
    普通旋转 canvas.rotate
    普通错切 canvas.skew
    matrix平移 matrix.postTranslate
    matrix缩放 matrix.postScale
    matrix旋转 matrix.postRotate
    matrix错切 matrix.postSkew
    camera三维旋转默认原点为轴心 camera.rotateX
    camera三维旋转设置轴心 canvas.translate、matrix.preTranslate、matrix.postTranslate
    camera三维旋转设置轴心+相机位置 camera.setLocation
    camera折叠

    属性动画基础

    位移动画 view.animate().translationX
    旋转动画 view.animate().rotationX
    放大动画 view.animate().scaleX
    透明度动画 view.animate().alpha
    组合动画 imageView.animate().scaleX(1.5f).scaleY(1.5f).alpha(1f).translationX(400f)
    设置动画时间 setDuration
    插值器 setInterpolator
    ObjectAnimator

    属性动画进阶

    颜色估值器 ArgbEvaluator
    自定义颜色估值器 TypeEvaluator
    自定义对象类型估值器 ObjectAnimator.ofObject
    组合动画 PropertyValuesHolder
    组合动画协作执行 AnimatorSet
    关键帧 Keyframe

    相关文章

      网友评论

        本文标题:自定义 View API 汇总

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