您的位置:首页 > 移动开发 > Android开发

Android开发简单使用surfaceview

2015-12-11 16:22 513 查看
在安卓开发中自定义View是比较普遍使用的,而且对于希望从事安卓开发的程序员来说,自定义View也应该是最安卓开发部分最难的,可能一个程序猿在两年内都在跟学习自定义view打交道。好了,废话不多说,我们来简单的使用一下surfaceview,这里要说明的是surfaceview是运行在子线程的,一般在游戏中使用较多。请看下面的代码:

package com.example.surface;

import android.content.Context;

import android.graphics.Canvas;

import android.graphics.Color;

import android.graphics.Paint;

import android.util.AttributeSet;

import android.view.SurfaceHolder;

import android.view.SurfaceHolder.Callback;

import android.view.SurfaceView;

//1、集成surfaceview,并实现SurfaceHolder接口的内部接口

public class CustomView extends SurfaceView implements Callback{

//2.定义两个属性,surfaceholder和画笔工具

private SurfaceHolder surfaceHolder;

private Paint paint;

public CustomView(Context context) {

super(context);

// TODO Auto-generated constructor stub

}

public CustomView(Context context, AttributeSet attrs) {

super(context, attrs);

//3、添加接口道surfaceholder实现监听

surfaceHolder = getHolder();

surfaceHolder.addCallback(this);

//4、初始化画笔工具,绘制颜色

paint = new Paint();

paint.setColor(Color.GREEN);

}

private void draw(){

//5、锁定画布,即可以实现绘制

Canvas canvas = surfaceHolder.lockCanvas();

canvas.drawColor(Color.RED);

//canvas.save();

canvas.drawCircle(500, 500, 200, paint);

//绘制完毕后解锁画布并通知holder

surfaceHolder.unlockCanvasAndPost(canvas);

}

@Override

public void surfaceCreated(SurfaceHolder holder) {

// TODO Auto-generated method stub

}

@Override

public void surfaceChanged(SurfaceHolder holder, int format, int width,

int height) {

// 绘制过程是在surfaceChanged方法中实现的,,具体实现请看安卓源码

draw();

}

@Override

public void surfaceDestroyed(SurfaceHolder holder) {

// TODO Auto-generated method stub

}

}

源码地址:http://download.csdn.net/detail/odabenniu/9347645 赠送一个可以使用的监听网络下载进度的自定义view
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: