SurfaceView

来源:互联网 发布:阿松为什么被禁 知乎 编辑:程序博客网 时间:2024/06/05 15:23

直接看代码。


<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context="com.lyj.painter.MainActivity" >


    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/hello_world" />
   
<com.lyj.painter.MyView 
   
   android:layout_width="wrap_content"
   android:layout_height="wrap_content"
   />
</LinearLayout>


package com.lyj.painter;


import java.text.AttributedCharacterIterator.Attribute;


import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.LinearGradient;
import android.graphics.Paint;
import android.graphics.Path;
import android.graphics.Rect;
import android.graphics.RectF;
import android.graphics.Shader;
import android.util.AttributeSet;
import android.view.Surface;
import android.view.SurfaceHolder;
import android.view.SurfaceHolder.Callback;
import android.view.SurfaceView;
import android.view.View;
 
public class MyView extends SurfaceView implements SurfaceHolder.Callback{
    private Paint paint = null;

public MyView(Context context) {
        super(context);
        paint = new Paint();
    paint.setColor(Color.BLACK);
        getHolder().addCallback(this);
    }
public MyView(Context context,AttributeSet attrs)
{
super(context,attrs);
paint = new Paint();
    paint.setColor(Color.BLACK);
        getHolder().addCallback(this);
}


    public void draw(){
    Canvas canvas = getHolder().lockCanvas();//操作之前锁定画布
    canvas.drawColor(Color.WHITE);
    canvas.drawRect(0, 0, 100, 100, paint);
    getHolder().unlockCanvasAndPost(canvas);//绘制完成后解锁画布
    }
@Override
public void surfaceCreated(SurfaceHolder holder) {
// TODO Auto-generated method stub
draw();
}


@Override
public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) {
// TODO Auto-generated method stub

}


@Override
public void surfaceDestroyed(SurfaceHolder holder) {
// TODO Auto-generated method stub

}



}

0 0