Android SurfaceView 透明和半透明

  1. [color=#ff0000][size=18px]透明//Transparent
  2. 半透明//Translucent[/size][/color]


  1. package rw.Trans;

  2. import android.app.Activity;
  3. import android.content.Context;
  4. import android.graphics.Bitmap;
  5. import android.graphics.BitmapFactory;
  6. import android.graphics.Canvas;
  7. import android.graphics.PixelFormat;
  8. import android.os.Bundle;
  9. import android.view.MotionEvent;
  10. import android.view.SurfaceHolder;
  11. import android.view.SurfaceHolder.Callback;
  12. import android.view.SurfaceView;

  13. public class TransParentActivity extends Activity {
  14.     /** Called when the activity is first created. */
  15.         class MySurfaceView extends SurfaceView implements Callback{
  16.         float left,top;
  17.         Bitmap bitmap=BitmapFactory.decodeResource(getResources(), R.drawable.reen);
  18.                 public MySurfaceView(Context context) {
  19.                         super(context);
  20.                         // TODO Auto-generated constructor stub
  21.                         [color=#ff0000]getHolder().setFormat(PixelFormat.TRANSPARENT);//设置为透明
  22.                         //getHolder().setFormat(PixelFormat.TRANSLUCENT);//半透明[/color]
  23.                         getHolder().addCallback(this);
  24.                         setFocusable(true);
  25.                 }

  26.                 @Override
  27.                 public void surfaceChanged(SurfaceHolder holder, int format, int width,
  28.                                 int height) {
  29.                         // TODO Auto-generated method stub
  30.                         
  31.                 }

  32.                 @Override
  33.                 public void surfaceCreated(SurfaceHolder holder) {
  34.                         // TODO Auto-generated method stub
  35.                  doDraw();        
  36.                 }

  37.                 private void doDraw() {
  38.                         // TODO Auto-generated method stub
  39.                         Canvas canvas=getHolder().lockCanvas();
  40.                         canvas.drawBitmap(bitmap, left, top, null);
  41.                         getHolder().unlockCanvasAndPost(canvas);
  42.                 }

  43.                 @Override
  44.                 public void surfaceDestroyed(SurfaceHolder holder) {
  45.                         // TODO Auto-generated method stub
  46.                         
  47.                 }
  48.                
  49.                 /* (non-Javadoc)
  50.                  * @see android.app.Activity#onTouchEvent(android.view.MotionEvent)
  51.                  */
  52.                 @Override
  53.                 public boolean onTouchEvent(MotionEvent event) {
  54.                         // TODO Auto-generated method stub
  55.                         left=event.getX();
  56.                         top=event.getY();
  57.                         doDraw();
  58.                         
  59.                         return super.onTouchEvent(event);
  60.                 }
  61.         }
  62.     @Override
  63.     public void onCreate(Bundle savedInstanceState) {
  64.         super.onCreate(savedInstanceState);
  65.         setContentView(new MySurfaceView(getApplicationContext()));
  66.         
  67.     }
  68.         
  69. }
AndroidManifest.xml



  1. http://schemas.android.com/apk/res/android"
  2.       package="rw.Trans"
  3.       android:versionCode="1"
  4.       android:versionName="1.0">
  5.    
  6.    
  7.         <activity android:name=".TransParentActivity"
  8.                   android:label="Transparent SurfaceView"
  9.                  [color=#ff0000] android:theme="@android:style/Theme.Translucent"
  10. [/color]                  >              
posted @ 2013-08-12 17:18  brave-sailor  阅读(633)  评论(0编辑  收藏  举报