Android复习笔记1
2016-04-22 15:23
309 查看
图形差异化处理
Shader
BitmapShader, ComposeShader, LinearGradient 直的
RadialGradient环形 弯的/与圆心等距环上颜色相同 实现某一区域内颜色的环形渐变效果 设置圆心 环形的半径
SweepGradient径向 弯的/与中心的连线上颜色相同 扫描渲染,就是以某个点位中心旋转一周所形成的效果 设置中心点
(左上/右下...)X轴正向顺时针
Paint.Style
FILL:填充内部(默认)
STROKE:只描边
FILL_AND_STROKE:填充内部与描边STROKE:只描边
Paint.Cap 画笔开始画的第一点与最后一点
BUTT:笔触是长方形且不超过路径(默认)
ROUND:笔触是圆形
SQUARE:笔触是正方形
Paint.Join 比如你的线是由多条小线拼接而成,拼接处的形状
MITER:接合处为锐角(默认)
ROUND:接合处为圆弧
BEVEL:接合处为直线
setShadowLayer
MAC的字体——Monaco字体
Typeface typeFace =Typeface.createFromAsset(getAssets(),"font/MONACO.ttf");
skew(float sx, float sy)
都是tan值!比如要在x轴方向上倾斜60度,那么小数值对应:tan 60 = 根号3 = 1.732!
save()往栈压入一个Layer,restore()弹出栈顶的一个Layer,这个Layer代表Canvas的 状态!
rotate()旋转的是整个坐标轴
getSaveCount() restoreToCount() 1最小
saveLayer() ALL_SAVE_FLAG
clipPath( ),clipRect( ),clipRegion( );
Region:可以理解为区域组合,比如可以将两个区域相加,相减,并,疑惑等!
Region.Op
DIFFERENCE:A和B的差集范围,即A - B,只有在此范围内的绘制内容才会被显示;
INTERSECT:即A和B的交集范围,只有在此范围内的绘制内容才会被显示
UNION:即A和B的并集范围,即两者所包括的范围的绘制内容都会被显示;
XOR:A和B的补集范围,此例中即A除去B以外的范围,只有在此范围内的绘制内容才会被显示;
REVERSE_DIFFERENCE:B和A的差集范围,即B - A,只有在此范围内的绘制内容才会被显示;
REPLACE:不论A和B的集合状况,B的范围将全部进行显示,如果和A有交集,则将覆盖A的交集范围;
canvas.clipRect(10, 10, 110, 110); //第一个
canvas.clipRect(50, 50, 150, 150, Region.Op.DIFFERENCE); //第二个
Path 轮廓
//根据原始位图与Matrix创建新图片
Bitmap bitmap = Bitmap.createBitmap(mBitmap,0,0,width,height,matrix,true);
drawBitmapMash
android.graphics.Camera 实现简单的3D效果
rotateX 翻转
matrix.preTranslate(-mCenterX, -mCenterY);
matrix.postTranslate(mCenterX, mCenterY);
preTranslate函数是在旋转前移动而postTranslate是在旋转完成后移动,主要作用是让对象围绕自己的中心二旋转
从Camara的API中可以看出来其不提供变形中心点的设置方法,那么怎么办呢,基本思路是:假设图片中心点为
(centerX,centerY),既然Camera始终以(0,0)为中心点,那么我先将图形矩阵往左移动centerX,再往上移动
centerY,让(centerX,centerY)正好掐在初始的(0,0)上,这样进行变形的话,中心点就变成了(centerX,
centerY),达到了目的,当然这还没结束,你既然偏移了(-centerX,-centerY),那么变形以后得移回来,然后再往
右下方分别移动centerX,centerY。
Shader
BitmapShader, ComposeShader, LinearGradient 直的
RadialGradient环形 弯的/与圆心等距环上颜色相同 实现某一区域内颜色的环形渐变效果 设置圆心 环形的半径
SweepGradient径向 弯的/与中心的连线上颜色相同 扫描渲染,就是以某个点位中心旋转一周所形成的效果 设置中心点
(左上/右下...)X轴正向顺时针
Paint.Style
FILL:填充内部(默认)
STROKE:只描边
FILL_AND_STROKE:填充内部与描边STROKE:只描边
Paint.Cap 画笔开始画的第一点与最后一点
BUTT:笔触是长方形且不超过路径(默认)
ROUND:笔触是圆形
SQUARE:笔触是正方形
Paint.Join 比如你的线是由多条小线拼接而成,拼接处的形状
MITER:接合处为锐角(默认)
ROUND:接合处为圆弧
BEVEL:接合处为直线
setShadowLayer
MAC的字体——Monaco字体
Typeface typeFace =Typeface.createFromAsset(getAssets(),"font/MONACO.ttf");
skew(float sx, float sy)
都是tan值!比如要在x轴方向上倾斜60度,那么小数值对应:tan 60 = 根号3 = 1.732!
save()往栈压入一个Layer,restore()弹出栈顶的一个Layer,这个Layer代表Canvas的 状态!
rotate()旋转的是整个坐标轴
getSaveCount() restoreToCount() 1最小
saveLayer() ALL_SAVE_FLAG
clipPath( ),clipRect( ),clipRegion( );
Region:可以理解为区域组合,比如可以将两个区域相加,相减,并,疑惑等!
Region.Op
DIFFERENCE:A和B的差集范围,即A - B,只有在此范围内的绘制内容才会被显示;
INTERSECT:即A和B的交集范围,只有在此范围内的绘制内容才会被显示
UNION:即A和B的并集范围,即两者所包括的范围的绘制内容都会被显示;
XOR:A和B的补集范围,此例中即A除去B以外的范围,只有在此范围内的绘制内容才会被显示;
REVERSE_DIFFERENCE:B和A的差集范围,即B - A,只有在此范围内的绘制内容才会被显示;
REPLACE:不论A和B的集合状况,B的范围将全部进行显示,如果和A有交集,则将覆盖A的交集范围;
canvas.clipRect(10, 10, 110, 110); //第一个
canvas.clipRect(50, 50, 150, 150, Region.Op.DIFFERENCE); //第二个
Path 轮廓
//根据原始位图与Matrix创建新图片
Bitmap bitmap = Bitmap.createBitmap(mBitmap,0,0,width,height,matrix,true);
drawBitmapMash
android.graphics.Camera 实现简单的3D效果
rotateX 翻转
matrix.preTranslate(-mCenterX, -mCenterY);
matrix.postTranslate(mCenterX, mCenterY);
preTranslate函数是在旋转前移动而postTranslate是在旋转完成后移动,主要作用是让对象围绕自己的中心二旋转
从Camara的API中可以看出来其不提供变形中心点的设置方法,那么怎么办呢,基本思路是:假设图片中心点为
(centerX,centerY),既然Camera始终以(0,0)为中心点,那么我先将图形矩阵往左移动centerX,再往上移动
centerY,让(centerX,centerY)正好掐在初始的(0,0)上,这样进行变形的话,中心点就变成了(centerX,
centerY),达到了目的,当然这还没结束,你既然偏移了(-centerX,-centerY),那么变形以后得移回来,然后再往
右下方分别移动centerX,centerY。
相关文章推荐
- 使用Intent传递对象--Android学习笔记4
- 【转】android 常用theme
- Android手机号注册、绑定手机号获取短信验证码实例
- Android自定义控件---“取消”视图
- AS编译错误:Android Duplicate files copied in APK
- Android 用service实现不依赖activity的版本更新功能
- 【转】Android学习系列(39)--Android主题和样式之系统篇(上)
- Android 绘图笔记(一)Region
- 两种解决修改android手机设置中字体大小后系统布局混乱的方法
- Android界面编程的基本知识点
- Android自定义GridView之仿支付宝首页可拖动、可删除的九宫格
- 在android使用OPENGL总结
- android 混淆打包
- Android PullToRefresh (GridView 下拉刷新上拉加载)
- Android 性能优化注意事项
- Android 关闭多个视图Intent.FLAG_ACTIVITY_CLEAR_TOP用法
- android bitmap compress(图片压缩)代码
- Android入门各种小错误
- 简单的android蓝牙通信技术
- android图片压缩的3种方法实例