使用简单的图片
通过Drawable对象进行访问。
R.drawable.file_name
@drawable/file_name通过BitmapDrawable对Bitmap对象进行封装,以下皆为静态方法,来自BitmapFactory。
- BitmapDrawagle drawable - new BitmapDrawable(bitmap);通过Bitmap对象的到另外的图像
- createBitmap(Bitmap source,int x,int y,int width, int height):从源位图source的制定位置开始截取一个图像。
- createScaledBitmap(Bitmap src,int dstWidth,int dstHeight,boolean filter):对原来的位图进行缩放
- createBitmap(int width,int height,Bitmap.Config config):创建一个宽width、height的新位图
- createBitmap(Bitmap source,int x,int y,int width,int height,Matris m,boolean filter);截取一段图像
- decodeByteArray(byte[],int offset, int length);从指定字节数组的offset位置开始,将长度length的字节解析成Bitmap对象。
- decodeFile(String pathName):从pathName指定文件中解析、创建Bitmap对象
用来判断是否被回收: isRecycled()
用来强制回收:recycle()使用静态方法导入一张图片:
- AssetManager assets=getAssets();
- InputStream assetsFile = assets.open(images[currentImg++]);
- BitmapDrawable bitmapDrawable=(BitmapDrawable) image.getDrawable();
- image.setImageBitmap(BitmapFactory.decodeStream(assetFile));
>绘图
- 绘图基础
- 集成View组件,重写onDraw()回调方法。
*使用Canvas画布进行画图 - drawArc()
- drawBitmap()
- drawCircle()
- drawLine()
- drawLines(),drawOvl()
- drawPath(),drawPoint()
- drawPoints(),drawRect()
- drawRoundRect()
- drawText()
- drawTextOnPath()
- clipRect()
- clipRegion();
* Canvas坐标变换rotate()旋转,scale()缩放,skew()倾斜,translate()移动;
- 集成View组件,重写onDraw()回调方法。
使用Paint进行绘图
- setARGB()设置颜色。
- setAlpha()设置透明度
- setColor()设置颜色
- setPathEffect()设置路径
- setShader()设置画笔的填充效果
- setShadowLayer()设置阴影
- setStrokeWidth()设置笔触宽度
- setStrokeJoin()设置笔转风格
- setStyle()设置paint的填充风格
- setTextAlign()设置文字对齐方式
- setTextSize()设置文本的文字大小。
使用Path类
- 预先将N个点连成一条路径,然后在路径上绘制
- 子类ComposePathEffect/CornerPathEffect/DashPathEffect/DiscretePathEffect/SumPathEffect
绘图应用-绘制有用游戏
重复调用onDraw()方法,每次在View组件上绘制不同的东西,形成逐帧动画。- 双缓冲画图板
- 弹球游戏
>图形特效处理
使用Matrix控制变换步骤
- 获取Matrix对象
- 调用Matrix的方法进行变换(矩阵方法)
- 将程序Matrix所做的变换应用到指定图形或组件。
Matrix提供的方法
- setTranslage
- setSkew()
- setTotate()
- setScale()
Matrix 应用举例
- 键盘操作图片移动
- 移动游戏背景
使用drawBitmapMesh扭曲图像
- bitmap:扭曲的源位图
- meshWidth/meshHeight划分格子数
- verts扭曲后个顶点的位置
- vertOffset:控制verts数组中扭曲的开始。
- 通过drawBitmapMesh()方法对源位图扭曲绘制。
drawBitmapMesh 应用举例
- 可揉的图片
>使用Shader填充图形
- 使用Shader对象指定渲染效果来填充图像。子类:
- BitmapShader位图平铺
- LinerGradient线性渐变
- RadialGradient圆形渐变
- SweepGradient角度渐变
- ComposeShader组合渲染效果