編輯:初級開發
SurfaceVIEw在游戲開發中有著舉足輕重的地位,它對於畫面的控制有著更大的自由度
(不像View要用handler來更新,關於VIEw的),但這方面的參考資料並不是太多,能找到的例子都有點喧賓奪主的感覺,
不能把使用的流程清晰展示出來,下面是個簡單的示例,力求把流程清楚展示,其他的可簡則簡。
程序效果:用線程畫一個藍色的長方形。
package com.ray.test;
/*
* SurfaceVIEw的示例程序
* 演示其流程
*/
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;
public class Test extends Activity {
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(new MyVIEw(this));
}
//內部類
class MyView extends SurfaceVIEw implements SurfaceHolder.Callback{
SurfaceHolder holder;
public MyVIEw(Context context) {
super(context);
holder = this.getHolder();//獲取holder
holder.addCallback(this);
//setFocusable(true);
}
@Override
public void surfaceChanged(SurfaceHolder holder, int format, int width,
int height) {
}
@Override
public void surfaceCreated(SurfaceHolder holder) {
new Thread(new MyThread()).start();
}
@Override
public void surfaceDestroyed(SurfaceHolder holder) {
}
//內部類的內部類
class MyThread implements Runnable{
@Override
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);//解鎖畫布,提交畫好的圖像
}
}
}
}
ps:對於軟件開發人員來說,保護代碼安全也是比較重要的因素之一,不過目前來說Google Android平台選擇了Java Dalvik VM的方式使其程序很容易破解和
l 使用Intent物件雖然透過Intent並非最快速,但卻是最有彈性的。無論是同一進程或是跨進程的溝通都可以使用它。例如:/* ===== EX-02 ======
移動開發大潮興起於蘋果公司的iPhone,移動浏覽器也隨之得到迅猛發展,特別是對Html5、CSS3以及CSS動畫的支持。之後Google公司推出android更是開啟
冬天,北風吹著、雪花飄著,宅男宅女都窩在被窩裡不願出去,但是又想用電腦上個網,看看動漫、打打游戲啥的……鑽出被窩就意味著寒冷,待在被窩裡就意味著不能玩台式電腦……真的是