canvas教程

SurfaceView如何结合Android UI

字号+ 作者:H5之家 来源:H5之家 2016-01-31 17:00 我要评论( )

SurfaceView如何结合AndroidUI,SurfaceView提供的是直接访问画布进行绘图的机制,在里面创建AndroidUI是行不通的,不过游戏中经常会用到AndoirdUI,这个就需要两者

SurfaceView提供的是直接访问画布进行绘图的机制,在里面创建Android UI是行不通的,不过游戏中经常会用到Andoird UI,这个就需要两者能够很好地结合使用.

先需要说明的一点,SurfaceView,ListView以及UI统统都继承了View,要结合它们只能在上层进行操作

package com.ray.bubble;

import android.app.Activity;

import android.content.Context;

import android.graphics.Canvas;

import android.graphics.Color;

import android.graphics.Paint;

import android.graphics.RectF;

import android.os.Bundle;

import android.view.SurfaceHolder;

import android.view.SurfaceView;

import android.view.Window;

import android.view.WindowManager;

import android.widget.FrameLayout;

import android.widget.TextView;

public class BubbleExplosion extends Activity {

private FrameLayout frame;

private MyView myView;

private TextView text;

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

requestWindowFeature(Window.FEATURE_NO_TITLE);

getWindow().setFlags(WindowManager.LayoutParams. FLAG_FULLSCREEN ,

WindowManager.LayoutParams. FLAG_FULLSCREEN);

frame = new FrameLayout(this);

text = new TextView(this);

text.setTextSize(20);

text.setText("lovehui");

text.setHeight(30);

text.setWidth(100);

frame.addView(myView);

frame.addView(text);

setContentView(frame);

}

class MyView extends SurfaceView implements SurfaceHolder.Callback{

SurfaceHolder holder;

public MyView(Context context) {

super(context);

holder = this.getHolder();//获取holder

holder.addCallback(this);

}

public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) {

}

public void surfaceCreated(SurfaceHolder holder) {

new Thread(new MyThread()).start();

}

public void surfaceDestroyed(SurfaceHolder holder) {

}

//内部类的内部类

class MyThread implements Runnable{

public void run() {

Canvas canvas = holder.lockCanvas(null);//获取画布

Paint mPaint = new Paint();

mPaint.setColor(Color.BLUE);

canvas.drawRect(new RectF(40,60,80,80), mPaint);

holder.unlockCanvasAndPost(canvas);//解锁画布,提交画好的图像

}

}

}

}

 

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
  • PolygonDrawingUtil

    PolygonDrawingUtil

    2017-04-26 18:02

  • Android自定义控件水波加速球

    Android自定义控件水波加速球

    2017-04-26 17:00

  • Canvas X Build 885英文版(图片编辑画图软件)下载

    Canvas X Build 885英文版(图片编辑画图软件)下载

    2017-04-21 08:01

  • 众创缘 web前端开发,ui设计,seo,网络营销互联网技术学习网站

    众创缘 web前端开发,ui设计,seo,网络营销互联网技术学习网站

    2017-03-29 14:00

网友点评
s