android绘图&自定义View(二)

1.位图操作类Bitmap
 

准备好画布,并准备好指定颜色的画笔后,就可以在画布上创造自己的作品了。但是有的时候,需要更加细致的操作,例如和PhotoShop那样可以在画布中复制图像,可以精确地设置某一个像素的颜色。为了实现上述功能,在Android系统中推出了类Bitmap。类Bitmap的完整写法是“Android.Graphics.Bitmap”,这是一个位图操作类,能够实现对位图的基本操作。在类Bitmap中提供了很多实用的方法,其中最为常用的几种方法如下所示。
(1)boolean compress(Bitmap.CompressFormat format, int quality, OutputStream stream):功能是压缩一个Bitmap对象,并根据相关的编码和画质保存到一个OutputStream中。目前的压缩格式有JPG和PNG两种。

(2)void copyPixelsFromBuffer(Buffer src):功能是从一个Buffer缓冲区复制位图像素。
(3)void copyPixelsToBuffer(Buffer dst):将当前位图像素内容复制到一个Buffer缓冲区。
(4)final int getHeight():功能是获取对象的高度。
(5)final int getWidth():功能是获取对象的宽度。
(6)final boolean hasAlpha():功能是设置是否有透明通道。
(7)void setPixel(int x, int y, int color):功能是设置某像素的颜色。
(8)int getPixel(int x, int y):功能是获取某像素的颜色。


2.使用变换处理类Matrix
在Android系统中,类Matrix的完整形式是Android.Graphics.Matrix,功能是实现图形图像的变换操作,例如常见的缩放和旋转处理。在类Matrix中提供了如下几种常用的方法。
(1)void reset():功能是重置一个matrix对象。
(2)void set(Matrix src):功能是复制一个源矩阵,和本类的构造方法Matrix(Matrix src)一样。
(3)boolean isIdentity():功能是返回这个矩阵是否定义(已经有意义)。
(4)void setRotate(float degrees):功能是指定一个角度以0,0为坐标进行旋转。
(5)void setRotate(float degrees, float px, float py):功能是指定一个角度以px,py为坐标进行旋转。
(6)void setScale(float sx, float sy):功能是实现缩放处理。
(7)void setScale(float sx, float sy, float px, float py):功能是以坐标px,py进行缩放。
(8)void setTranslate(float dx, float dy):功能是实现平移处理。
(9)void setSkew (float kx, float ky, float px, float py:功能是以坐标(px,py)进行倾斜。

 


public class MyView extends View {


   //构造方法会在代码里面new的时候调用



    public MyView(Context context) {
        super(context);


    }
    
   //第二个构造方法再layout中使用

    public MyView(Context context, AttributeSet attrs) {
        super(context, attrs);
    }
   
   //第三个构造方法在布局layout中使用,但会有style.

    public MyView(Context context, AttributeSet attrs, int defStyleAttr) {
        super(context, attrs, defStyleAttr);
    }


 第一个构造方法会在MainActivity中new的时候调用

   TextView tv=new TextView(this);

第二个构造方法会在layout中使用(调用)

 第三个构造方法会在layout中使用,但是会有style

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

天真小巫

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

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

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

打赏作者

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

抵扣说明:

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

余额充值