`

android游戏开发学习笔记三(学习书籍 Android游戏编程之从零开始)

阅读更多

/**
* 画笔
*
* @author 岳振华
*
*/
@SuppressWarnings("unused")
public class PaintSrufaceView extends SurfaceView implements Callback, Runnable {
private SurfaceHolder sfh;
private Thread thread;
private int surfaceW, surfaceH;
private Canvas canvas;
private boolean flag;//surfaceView是否销毁的标志位

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


/********** 画图所必需 *********************/
sfh = this.getHolder();// 获得surfaceHolder对象
sfh.addCallback(this);


thread = new Thread(this);
this.setKeepScreenOn(true);// 保持屏幕常亮
this.setFocusable(true);
/********************************************/





}


/**
* 开始动画
*/
@Override
public void startAnimation(Animation animation) {
super.startAnimation(animation);
}


/**************************** callback的几个方法 ********************/


/**
* 当Surface第一次创建后会立即调用该函数 一般情况下都是在另外的线程来绘制界面,所以不要在这个函数中绘制Surface
*/
@Override
public void surfaceCreated(SurfaceHolder holder) {
surfaceW = this.getWidth();
surfaceH = this.getHeight();
thread = new Thread(this);
flag=true;
thread.start();// 开启线程


}


/**
* 当Surface的状态(大小和格式)发生变化的时候会调用 该函数 在surfaceCreated调用后该函数至少会被调用一次
*/
@Override
public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) {


}


@Override
public void surfaceDestroyed(SurfaceHolder holder) {
flag=false;
}


/**************************** callback的几个方法 ********************/


/**
* 绘图方法
*/
private void draw() {
try {
// 获得canvas实例
canvas = sfh.lockCanvas();
if (canvas != null) {
// 利用填充画布,刷屏
canvas.drawColor(Color.BLACK);
/****************画圆*****************/
//消除 锯齿前
Paint paint1 =new Paint();
paint1.setColor(Color.YELLOW);
canvas.drawCircle(50, 50, 20, paint1);
//消除 锯齿后
paint1.setAntiAlias(true);
canvas.drawCircle(100, 50, 20, paint1);
/***************************************/
/************写文本********************/
Paint paint3=new Paint();
paint3.setColor(Color.RED);
canvas.drawText("无透明", 100, 200, paint3);
//半透明
Paint paint2=new Paint();
paint2.setColor(Color.RED);
paint2.setAlpha(0x77);
canvas.drawText("半透明", 100, 220, paint2);
/**************************************/
/*************锚点**********************/
//-----设置绘制文本的锚点
canvas.drawText("锚点", 20, 90, new Paint());
Paint paint4 = new Paint();
paint4.setColor(Color.GREEN);
//设置以文本的中心点绘制
paint4.setTextAlign(Paint.Align.CENTER);
canvas.drawText("锚点", 20, 105, paint4);


}
} catch (Exception e) {
e.printStackTrace();
} finally {
if (null != canvas) {
sfh.unlockCanvasAndPost(canvas);// 提交画布
}
}
}


@SuppressWarnings("static-access")
@Override
public void run() {
while(flag)
{
// 绘图
draw();
try {
thread.sleep(100);
} catch (InterruptedException e) {
e.printStackTrace();
}
}



}
}

分享到:
评论

相关推荐

    Android开发学习笔记

    Android 开发学习笔记,学习android的好资料

    Android开发学习笔记(整理)

    Android开发学习笔记(整理),整理论坛android学习笔记,较完整的讲解了android的内容。包括:view、activity、service、intent、广播机制、http连接、数据sqllite存储、后台线程、各种layout、偏好、本地文件操作、...

    新版android开发教程 笔记

    新版Android开发教程&笔记三--环境搭建与解析 新版Android开发教程&笔记四--Dalvik ADB 新版Android开发教程+笔记五--模拟器、应用1、2 新版Android开发教程+笔记六--应用3、4 布局 新版Android开发教程+笔记七--...

    Android应用开发_学习笔记.doc

    Android应用开发_学习笔记.docAndroid应用开发_学习笔记.docAndroid应用开发_学习笔记.docAndroid应用开发_学习笔记.doc

    Android 开发教程 新版Android开发教程&笔记

    新版Android开发教程&笔记三--环境搭建与解析 新版Android开发教程&笔记四--Dalvik ADB 新版Android开发教程&笔记五--模拟器、应用1、2 新版Android开发教程&笔记六--应用3、4 布局 新版Android开发教程&笔记七--...

    Android学习笔记(十)——实现新闻列表

    Android学习笔记(三)android studio中CheckBox自定义样式(更换复选框左侧的勾选图像) Android学习笔记(四)Android 中Activity页面的跳转及传值 Android学习笔记(五)——Toast提示、Dialog对话框、Menu菜单 ...

    Android驱动开发笔记

    Android驱动开发笔记

    Android开发教程+笔记 Android开发教程+笔记

    Android开发教程+笔记 Android开发教程+笔记 Android开发教程+笔记 Android开发教程+笔记 Android开发教程+笔记 Android开发教程+笔记 Android开发教程+笔记 Android开发教程+笔记 Android开发教程+笔记 Android开发...

    Android学习笔记

    Android学习笔记 Android学习笔记 Android学习笔记

    新版Android开发教程和笔记

    ARM上面运行Android系统,这里是开发教程和笔记。具体的内容包括: Professional_Android_App.pdf 新版Android开发教程&笔记--基础入门一.pdf 新版Android开发教程&笔记--基础入门二.pdf 新版Android开发教程&...

    Android零基础教程视频链接

    应用3、4 布局.Android开发教程+笔记7--基础UI编程1.Android开发教程+笔记8--基础UI编程2.Android开发教程+笔记9--基础UI编程3.Android开发教程+笔记10--基础UI编程4.Android开发教程+笔记11--可视化UI设计DroidDraw...

    Android学习笔记.pdf

    Android学习笔记

    android高级编程学习笔记

    android高级编程开发笔记,中间有实例代码。 包括Intent、广播接收器、Adapter和Internet使用实例 数据存储、检索和共享 p2p通信等

    新版Android开发教程及笔记-完整版.pdf

    新版Android开发教程&笔记三--环境搭建与解析.pdf 新版Android开发教程&笔记四--Dalvik ADB.pdf 新版Android开发教程+笔记五--模拟器、应用1、2.pdf 新版Android开发教程+笔记六--应用3、4 布局.pdf 新版Android开发...

    Eclipse开发学习笔记.pdf

    Eclipse开发学习笔记。感觉挺好的,就传上来给大家共享

    java学习细节 android学习笔记

    学习java和android的笔记 更容易学习android 资深学习android 具有大量学习的笔记 很多的错误 都是从细节开始学习的

    新版Android开发教程&笔记--基础入门

    新版Android开发教程&笔记三--环境搭建与解析 新版Android开发教程&笔记四--Dalvik ADB 新版Android开发教程+笔记五--模拟器、应用1、2 新版Android开发教程+笔记六--应用3、4 布局 新版Android开发教程+笔记七--...

    Android程序开发学习笔记(手电筒软件设计).pdf

    Android程序开发学习笔记(手电筒软件设计).pdf

    Android零基础开发教程笔记.doc

    粉丝可免费下载哦!!!《Android开发教程笔记完全版》将教会你基本的Android编程,以及学习一些Android应用程序开发相关的高级概念。

    Android开发教程(完整版)

    新版Android开发教程&笔记三--环境搭建与解析.pdf 新版Android开发教程&笔记四--Dalvik ADB.pdf 新版Android开发教程+笔记五--模拟器、应用1、2.pdf 新版Android开发教程+笔记六--应用3、4 布局.pdf 新版Android开发...

Global site tag (gtag.js) - Google Analytics