2012年5月23日 星期三

[ANDROID]SurfaceView.getHolder方法練習


SurfaceView_test1Activity

package bear.Graphis.surfaceview_test1;

import android.app.Activity;
import android.content.res.Resources;
import android.graphics.Bitmap;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.drawable.BitmapDrawable;
import android.os.Bundle;
import android.view.SurfaceView;
import android.view.View;
import android.view.View.OnClickListener;

public class SurfaceView_test1Activity extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
     
        SurfaceView surfaceView01 = (SurfaceView) findViewById(R.id.surfaceView1);
        surfaceView01.setOnClickListener(new OnClickListener() {
   
   public void onClick(View v) {
   
    SurfaceView surfaceView = (SurfaceView)v;
    Resources res = getResources();//先取得資源
    BitmapDrawable bmpDraw =(BitmapDrawable) res.getDrawable(R.drawable.icon);//構造一個BitmapDrawable
    Bitmap bmp =bmpDraw.getBitmap();//取得BitmapDrawable內的圖片
    Canvas canvas = surfaceView.getHolder().lockCanvas(); // 加鎖
    Paint mypaint =new Paint();
    //設定Paint屬性
    mypaint.setColor(Color.MAGENTA);
    mypaint.setTextSize(40);
    //設定Canvas屬性
    canvas.drawColor(Color.WHITE);//設定畫布顏色
    canvas.drawText("Hello", 0, 40, mypaint);//顯示字
    canvas.drawBitmap(bmp, 50, 150, mypaint);//顯示圖片
    surfaceView.getHolder().unlockCanvasAndPost(canvas);//解鎖
    
    
   }
  });
     
     
    }
}


main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

    <SurfaceView
        android:id="@+id/surfaceView1"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_weight="0.00" />

</LinearLayout>




結果:










沒有留言:

張貼留言