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中使用(调用)

android 绘制bitmap 自定义view android新建bitmap_位图

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

android 绘制bitmap 自定义view android新建bitmap_构造方法_02