【Android学习笔记】图形与图像处理(静态处理)

使用简单的图片

  • 通过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()移动;

  • 使用Paint进行绘图

    • setARGB()设置颜色。

    • setAlpha()设置透明度

    • setColor()设置颜色

    • setPathEffect()设置路径

    • setShader()设置画笔的填充效果

    • setShadowLayer()设置阴影

    • setStrokeWidth()设置笔触宽度

    • setStrokeJoin()设置笔转风格

    • setStyle()设置paint的填充风格

    • setTextAlign()设置文字对齐方式

    • setTextSize()设置文本的文字大小。

  • 使用Path类

    • 预先将N个点连成一条路径,然后在路径上绘制

    • 子类ComposePathEffect/CornerPathEffect/DashPathEffect/DiscretePathEffect/SumPathEffect

  • 绘图应用-绘制有用游戏

重复调用onDraw()方法,每次在View组件上绘制不同的东西,形成逐帧动画。

  • 双缓冲画图板

    • 弹球游戏

>图形特效处理

  • 使用Matrix控制变换步骤

    1. 获取Matrix对象

    2. 调用Matrix的方法进行变换(矩阵方法)

    3. 将程序Matrix所做的变换应用到指定图形或组件。

  • Matrix提供的方法

    • setTranslage

    • setSkew()

    • setTotate()

    • setScale()

  • Matrix 应用举例

    • 键盘操作图片移动

    • 移动游戏背景

  • 使用drawBitmapMesh扭曲图像

    • bitmap:扭曲的源位图

    • meshWidth/meshHeight划分格子数

    • verts扭曲后个顶点的位置

    • vertOffset:控制verts数组中扭曲的开始。

    • 通过drawBitmapMesh()方法对源位图扭曲绘制。

  • drawBitmapMesh 应用举例

    • 可揉的图片

>使用Shader填充图形

  • 使用Shader对象指定渲染效果来填充图像。子类:

    • BitmapShader位图平铺

    • LinerGradient线性渐变

    • RadialGradient圆形渐变

    • SweepGradient角度渐变

    • ComposeShader组合渲染效果

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

onnx

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值