android游戏开发初学之SurfaceView绘制界面

原创 2015年11月17日 16:56:41

绘制界面需要先锁定一个画布,创建画笔,绘制完成之后需要解锁画布并提交

package com.learn.swl.game;

import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.view.SurfaceHolder;
import android.view.SurfaceView;

/**
 * Created by ADM on 2015/11/17.
 */
public class GameUi extends SurfaceView implements SurfaceHolder.Callback,Runnable{
    private boolean threadFlag;
    private  SurfaceHolder holder;
    private  Canvas canvas;
    public GameUi(Context context) {
        super(context);
        holder = getHolder();
        holder.addCallback(this);
    }
    private void DrawUI(){
        try {
            canvas = holder.lockCanvas();//锁定画布
            if(canvas!=null){
                Paint paint = new Paint();//创建画笔
                paint.setColor(Color.RED);//设置画笔颜色
                canvas.drawRect(0, 0, 100, 100, paint);//画一个矩形
            }
        }catch (Exception e){

        }finally {
            if(canvas!=null){
                holder.unlockCanvasAndPost(canvas);//解锁并提交画布
            }
        }

    }
    @Override
    public void run() {
        while (threadFlag){
            DrawUI();
        }
    }
    @Override
    public void surfaceCreated(SurfaceHolder holder) {
        System.out.println("surfaceCreated");
        Thread thread = new Thread(this);
        threadFlag = true;//线程开启标志
        thread.start();//线程开启
    }

    @Override
    public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) {
        System.out.println("surfaceChanged");

    }

    @Override
    public void surfaceDestroyed(SurfaceHolder holder) {
        System.out.println("surfaceDestroyed");
        threadFlag = false;
    }


}

在这里用到threadFlag来控制线程的销毁,以及防止重复创建线程

相关文章推荐

android游戏开发初学之SurfaceView绘制图片

直接贴代码 图片的基类 package com.learn.swl.game; import android.graphics.Bitmap; import android.graphics.C...

android游戏开发初学之SurfaceView创建

首先我们先来看下官方API对SurfaceView的介绍 SurfaceView的API介绍 Provides a dedicated drawing surface embedded i...

【转】Android游戏开发之三】剖析 SurfaceView ! Callback以及SurfaceHolder!!

 Himi  原创, 转载请注明! 谢谢。原文地址: http://blog.csdn.net/xiaominghimi/archive/2010/12/21/6090575.aspx      各位...

Android游戏开发----动画SurfaceView详解

SurfaceView在游戏开发中占着举足轻重的地位。今天好好找资料看了看。附带自己写的例子。          写变化不太快的画面时,用View就足够了,用View写太快的画面变化时,可能会出现屏...

Android游戏开发基础part1-View视图和SurfaceView视图

游戏开发基础part1 -View视图和SurfaceView视图 好久没来发表博客了,就是因为一直都在忙其他事情,忙着四级备考,还有学科复习,又因为关于游戏基础这一块内容有点多,断断续续学习,这不...
  • wwj_748
  • wwj_748
  • 2012年06月10日 19:21
  • 2131

Android游戏开发入门讲解-SurfaceView-1

一、框架核心 SurfaceView SurfaceView是View的子类,等同于TextView、ImageView等一系列控件。 核心功能可以通过子线程进行界面的绘制. 绘制需要注意的内...

【Android游戏开发之六】无法在SurfaceView中添加组件的替代方法

各位童鞋请你们注意:surfaceview中确实有 onDraw这个方法,但是surfaceview不会自己去调用!!! 而我代码中的ondraw 也好 draw 也好,都是我自己定义的一个方法...

【Android游戏开发之六】在SurfaceView中添加组件!!!!并且相互交互数据!!!!

  原文地址:http://blog.csdn.net/xiaominghimi/archive/2010/12/26/6099194.aspx      各位童鞋请你们注意:surfaceview中...

[Android游戏开发学习笔记]View和SurfaceView

本文为阅读http://blog.csdn.net/xiaominghimi/article/details/6089594的tt

【Android游戏开发二十六】追加简述SurfaceView 与 GLSurfaceView效率!

李华明Himi 原创,转载务必在明显处注明:转载自【黑米GameDev街区】 原文链接: http://www.himigame.com/android-game/388.html今天在这里大概说下现...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:android游戏开发初学之SurfaceView绘制界面
举报原因:
原因补充:

(最多只允许输入30个字)