Android SurfaceView 透明和半透明
- [color=#ff0000][size=18px]透明//Transparent
- 半透明//Translucent[/size][/color]
- package rw.Trans;
- import android.app.Activity;
- import android.content.Context;
- import android.graphics.Bitmap;
- import android.graphics.BitmapFactory;
- import android.graphics.Canvas;
- import android.graphics.PixelFormat;
- import android.os.Bundle;
- import android.view.MotionEvent;
- import android.view.SurfaceHolder;
- import android.view.SurfaceHolder.Callback;
- import android.view.SurfaceView;
- public class TransParentActivity extends Activity {
- /** Called when the activity is first created. */
- class MySurfaceView extends SurfaceView implements Callback{
- float left,top;
- Bitmap bitmap=BitmapFactory.decodeResource(getResources(), R.drawable.reen);
- public MySurfaceView(Context context) {
- super(context);
- // TODO Auto-generated constructor stub
- [color=#ff0000]getHolder().setFormat(PixelFormat.TRANSPARENT);//设置为透明
- //getHolder().setFormat(PixelFormat.TRANSLUCENT);//半透明[/color]
- getHolder().addCallback(this);
- setFocusable(true);
- }
- @Override
- public void surfaceChanged(SurfaceHolder holder, int format, int width,
- int height) {
- // TODO Auto-generated method stub
-
- }
- @Override
- public void surfaceCreated(SurfaceHolder holder) {
- // TODO Auto-generated method stub
- doDraw();
- }
- private void doDraw() {
- // TODO Auto-generated method stub
- Canvas canvas=getHolder().lockCanvas();
- canvas.drawBitmap(bitmap, left, top, null);
- getHolder().unlockCanvasAndPost(canvas);
- }
- @Override
- public void surfaceDestroyed(SurfaceHolder holder) {
- // TODO Auto-generated method stub
-
- }
-
- /* (non-Javadoc)
- * @see android.app.Activity#onTouchEvent(android.view.MotionEvent)
- */
- @Override
- public boolean onTouchEvent(MotionEvent event) {
- // TODO Auto-generated method stub
- left=event.getX();
- top=event.getY();
- doDraw();
-
- return super.onTouchEvent(event);
- }
- }
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(new MySurfaceView(getApplicationContext()));
-
- }
-
- }
AndroidManifest.xml
- http://schemas.android.com/apk/res/android"
- package="rw.Trans"
- android:versionCode="1"
- android:versionName="1.0">
-
-
- <activity android:name=".TransParentActivity"
- android:label="Transparent SurfaceView"
- [color=#ff0000] android:theme="@android:style/Theme.Translucent"
- [/color] >