Android(安卓)ApiDemo(十二)-- Graphics2
16lz
2021-01-26
Shape
shape资源可以定义矩形(rectangle)、椭圆(oval)、线段(line)、环形(ring)四种简单二维图形,例如1、椭圆
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="oval"> <solid android:color="#00000000"/> <stroke android:width="4dp" android:color="#99000000" android:dashWidth="4dp" android:dashGap="2dp" /> <padding android:left="7dp" android:top="7dp" android:right="7dp" android:bottom="7dp" /> <corners android:radius="4dp" /></shape>
线段
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="line"> <stroke android:width="1dp" android:color="#FF000000" android:dashWidth="1dp" android:dashGap="2dp" /></shape>
shape默认情况下是矩形
MaskFilter
maskFilter可以对图像做一些边缘的处理,android中提供了两种效果 1、EmbossMaskFilter 浮雕效果 EmbossMaskFilter (float[] direction, float ambient, float specular, float blurRadius) direction指定光源方向;light指定光源亮度;specular光等级;blurRadius模糊度 例如:new EmbossMaskFilter(new float[] { 1, 1, 1 }, 0.4f, 6, 3.5f);2、BlurMaskFilter 模糊效果
BlurMaskFilter (float radius, BlurMaskFilter.Blur style)
radius范围大小?;style样式,一共有四种样式。
PathEffect
pathEffect可以对通过path绘制的线条改变样式,有以下几种
1、CornerPathEffect,路径连接处平滑处理;
2、DashPathEffect,路径变为虚线 ;
3、PathDashPathEffect,对2的扩展,使虚线点具有形状;
4、ComposePathEffect,组合两种pathEffect;
5、DiscretePathEffect,使每段路径产生随机的偏移;
6、SumPathEffect,叠加两种pathEffect。
Picture
picture可以用来记录一个canvas的绘制过程,之后可以通过该picture重复相同的绘制,而且可以取得较高的性能。例如mPicture = new Picture();drawSomething(mPicture.beginRecording(200, 100));mPicture.endRecording();
Matrix
Matrix可以提供一系列的矩阵变换,用于图形的平移,缩放,旋转,还提供了两种用于生成变换矩阵的方法: 1、点到点的变换setPolyToPoly (float[] src, int srcIndex, float[] dst, int dstIndex, int pointCount) ; 这种变换通过点的个数可以达到特殊的效果,例如,一个点--平移,两个--旋转、缩放,三个点--旋转、变形,四个点--透视效果。 1)src,源点坐标数组,形如[x0,y0,x1,y1,…]; 2)srcIndex,指出在1)的数组中从哪个点开始变换; 3)dst,目标坐标数组,形式同1),用于与源点坐标对应; 4)dstIndex,指出在3)中的数组中从哪个点用于对应; 5)pointCount,用于对应点的个数。 2、矩形到矩形的变换setRectToRect (RectF src, RectF dst, Matrix.ScaleToFit stf) ,其中Matrix.ScaleToFit用于指定变换方式,一共有三种变换方式: 1)start,保持变换前矩形长宽比,最大限度填充变换后的矩形,并位于左上方; 2)end,同1),但位于右下方; 3)center,同1),位于中央; 4)fill,最大限度填充,使长宽比满足变换后的矩形;其他
1、canvas可以通过cavase.saveLayerAlpha(float left, float top, float right, float bottom, int alpha, int saveFlags)来产生一个新的图层,当在新图层绘制完成以后,通过canvas.restore()将新图层与上一图层合并。2、paint通过setTextSize()指定绘制文字的大小,getTextWidth()可以获得字符串中每一个字符的宽度;measureText()获得字符串总的宽度;getTextBound()获得所占矩形区域的大小。
更多相关文章
- Android(安卓)百分比、水波、流量剩余进度球的实现
- Android(安卓)TextView自适应文字大小
- Android(安卓)椭圆路径 长按暂停动画的实现
- Android(安卓)游戏开发必备的基础知识
- Android(安卓)使用RecycleView实现吸附小标题的Demo(附源码)
- android 绘制图片的一部分
- Android(安卓)SurfaceView使用详解(很好的实战例子)
- Android的图形与图像处理之一 使用简单图片&绘图
- Android(安卓)OpenGL 纹理绘制图像---Native实现