歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> Android SurfaceView 透明和半透明

Android SurfaceView 透明和半透明

日期:2017/3/1 11:07:27   编辑:Linux編程
  1. <span >透明//Transparent
  2. 半透明//Translucent</span>

  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. <span style="color:#ff0000;">getHolder().setFormat(PixelFormat.TRANSPARENT);//設置為透明
  22. //getHolder().setFormat(PixelFormat.TRANSLUCENT);//半透明</span>
  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. @Override
  32. public void surfaceCreated(SurfaceHolder holder) {
  33. // TODO Auto-generated method stub
  34. doDraw();
  35. }
  36. private void doDraw() {
  37. // TODO Auto-generated method stub
  38. Canvas canvas=getHolder().lockCanvas();
  39. canvas.drawBitmap(bitmap, left, top, null);
  40. getHolder().unlockCanvasAndPost(canvas);
  41. }
  42. @Override
  43. public void surfaceDestroyed(SurfaceHolder holder) {
  44. // TODO Auto-generated method stub
  45. }
  46. /* (non-Javadoc)
  47. * @see android.app.Activity#onTouchEvent(android.view.MotionEvent)
  48. */
  49. @Override
  50. public boolean onTouchEvent(MotionEvent event) {
  51. // TODO Auto-generated method stub
  52. left=event.getX();
  53. top=event.getY();
  54. doDraw();
  55. return super.onTouchEvent(event);
  56. }
  57. }
  58. @Override
  59. public void onCreate(Bundle savedInstanceState) {
  60. super.onCreate(savedInstanceState);
  61. setContentView(new MySurfaceView(getApplicationContext()));
  62. }
  63. }

AndroidManifest.xml

  1. <p><?xml version="1.0" encoding="utf-8"?>
  2. <manifest xmlns:android="<a href="http://schemas.android.com/apk/res/android">http://schemas.android.com/apk/res/android</a>"
  3. package="rw.Trans"
  4. android:versionCode="1"
  5. android:versionName="1.0">
  6. <uses-sdk android:minSdkVersion="10" /></p><p> <application android:icon="@drawable/icon" android:label="@string/app_name">
  7. <activity android:name=".TransParentActivity"
  8. android:label="Transparent SurfaceView"
  9. <span style="color:#ff0000;"> android:theme="@android:style/Theme.Translucent"
  10. </span> ></p><p>
  11. <intent-filter>
  12. <action android:name="android.intent.action.MAIN" />
  13. <category android:name="android.intent.category.LAUNCHER" />
  14. </intent-filter>
  15. </activity></p><p> </application>
  16. </manifest></p>
Copyright © Linux教程網 All Rights Reserved