在android2D游戏编程中所要用到的主要类为 SurfaceView Canvas Paint
SurfaceView其实为两个View类组成,进行交替画图。要操作SurfaceView则需要实现接口Callback接口。
SurfaceHolder接口控制SurefaceView中的画布,即如果需要使用画布Canvas,则需要由SurefaceHolder来得到。
SurefaceView中有一个getHolder方法来得到一个SurefaceHolder对象,并且SurefaceHolder对象要调用addCallback(CallBack callBack)方法才能真正使用Canvas。调用之后再通过SurefaceHolder中的lockCanvas()方法得到一个Canvas的对象,之后就可在该画布上画图了。
例子:
public Class MySurefaceView extends SurefaceView implements CallBack{
private Canvas canvas; private SurefaceHolder holder;
public MySurefaceView(Context context){
super(context);
holder=getHolder(); //得到SurefaceHolder对象
holder.addCallback(this);
canvas=holder.lockCanvas(); 、//得到canvas
holder.unlockCanvas(); //在画完之后,释放canvas
}
}
画图的各种机制,首先Canvas相当于一张画布,由其来设置画图的颜色,而Paint相当于画笔,可以设置图形的透明度等属性。SurefaceView继承自View,但是SurefaceView画图比View更流畅。View中有一个方法onDraw(Canvas canvas);调用该方法可以直接得到一个canvas画布,而SurefaceView则需要通过上述的方法得到。
Marvel Proto.io Concept.ly FluidUI 各种UI原型工具