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()获得所占矩形区域的大小。



更多相关文章

  1. Android(安卓)百分比、水波、流量剩余进度球的实现
  2. Android(安卓)TextView自适应文字大小
  3. Android(安卓)椭圆路径 长按暂停动画的实现
  4. Android(安卓)游戏开发必备的基础知识
  5. Android(安卓)使用RecycleView实现吸附小标题的Demo(附源码)
  6. android 绘制图片的一部分
  7. Android(安卓)SurfaceView使用详解(很好的实战例子)
  8. Android的图形与图像处理之一 使用简单图片&绘图
  9. Android(安卓)OpenGL 纹理绘制图像---Native实现

随机推荐

  1. 汤姆大叔的深入理解JavaScript读后感一(1
  2. 奈何两字拉成桥、不得不双击两次才能激活
  3. 使用node.js托管一个asp.net或jsp网站。
  4. 用原生js实现数字自相加
  5. 将对象值传递给指令而不是任何其他数据变
  6. 使用angularjs添加包含事件的新标记
  7. 使用倒计时进度条退出
  8. jQuery Slimbox没有正确请求文件
  9. 如何通过javascript显示隐藏的div?
  10. Javascript对象