SurfaceView(9)透明和半透明
1.设置PixelFormat.TRANSPARENT或者PixelFormat.TRANSLUCENT
getHolder().setFormat(PixelFormat.TRANSPARENT);// 设置为透明
getHolder().setFormat(PixelFormat.TRANSLUCENT);//半透明
public class HalfAlphaSurfaceView extends SurfaceView implements SurfaceHolder.Callback { float left, top; Bitmap bitmap ; public HalfAlphaSurfaceView(Context context) { super(context); bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.ic_launcher); getHolder().setFormat(PixelFormat.TRANSPARENT);// 设置为透明 // getHolder().setFormat(PixelFormat.TRANSLUCENT);//半透明 getHolder().addCallback(this); setFocusable(true); } @Override public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) { } @Override public void surfaceCreated(SurfaceHolder holder) { doDraw(); } private void doDraw() { Canvas canvas = getHolder().lockCanvas(); canvas.drawBitmap(bitmap, left, top, null);//绘制图片 getHolder().unlockCanvasAndPost(canvas); } @Override public void surfaceDestroyed(SurfaceHolder holder) { } /* * (non-Javadoc) * * @see android.app.Activity#onTouchEvent(android.view.MotionEvent) */ @Override public boolean onTouchEvent(MotionEvent event) { left = event.getX(); top = event.getY(); doDraw(); return super.onTouchEvent(event); } }
2.manifest.xml 中相应的activity要用Theme.Translucent 主题
<activity android:name=".MainActivity" android:label="@string/app_name" android:theme="@android:style/Theme.Translucent" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity>

浙公网安备 33010602011771号