国产精品免费无遮挡无码永久视频-国产高潮视频在线观看-精品久久国产字幕高潮-国产精品99精品无码视亚

通過 getHolder()方法可以得到這個 SurfaceHolder對象

發布時間:2013-9-17 16:07    發布者:reggae
關鍵詞: android
原理(來自Android的SDk文檔):
訪問SurfaceView的底層圖形是通過SurfaceHolder接口來實現的,通過 getHolder()方法可以得到這個 SurfaceHolder對象。你應該實現surfaceCreated(SurfaceHolder)和 surfaceDestroyed(SurfaceHolder)方法來知道在這個Surface在窗口的顯示和隱藏過程中是什么時候創建和銷毀的。
SurfaceView可以在多線程中被訪問。
注 意:一個SurfaceView只在SurfaceHolder.Callback.surfaceCreated() 和 SurfaceHolder.Callback.surfaceDestroyed()調用之間是可用的,其他時間是得不到它的Canvas對象的 (null)。
我的訪問過程:
創建一個SurfaceView的子類,實現SurfaceHolder.Callback接口。
得到這個SurfaceView的SurfaceHolder對象holder。
holder.addCallback(callback),也就是實現SurfaceHolder.Callback接口的類對象。
在SurfaceHolder.Callback.surfaceCreated()調用過后holder.lockCanvas()對象就可以得到SurfaceView對象對應的Canvas對象canvas了。
用canvas對象畫圖。
畫圖結束后調用holder.unlockCanvasAndPost()就把圖畫在窗口中了。
SurfaceView可以多線程訪問,在多線程中畫圖。
  1. import android.content.Context;
  2. import android.graphics.Canvas;
  3. import android.graphics.Color;
  4. import android.graphics.Paint;
  5. import android.util.Log;
  6. import android.view.SurfaceHolder;
  7. import android.view.SurfaceView;
  8. public class MySurfaceView extends SurfaceView implements
  9. SurfaceHolder.Callback {
  10. private Context mContext;
  11. private SurfaceHolder mHolder;
  12. public TouchScreenAdjusterSurfaceView(Context context,) {
  13. super(context);
  14. mContext = context;
  15. mHolder = TouchScreenAdjusterSurfaceView.this.getHolder();
  16. mHolder.addCallback(TouchScreenAdjusterSurfaceView.this);
  17. this.setFocusableInTouchMode(true); // to make sure that we can get
  18. // touch events and key events,and
  19. // "setFocusable()" to make sure we
  20. // can get key events
  21. }
  22. @Override
  23. public void surfaceChanged(SurfaceHolder holder, int format, int width,
  24. int height) {
  25. // TODO Auto-generated method stub
  26. }
  27. @Override
  28. public void surfaceCreated(SurfaceHolder holder) {
  29. //now you can get the Canvas and draw something here
  30. }
  31. @Override
  32. public void surfaceDestroyed(SurfaceHolder holder) {
  33. // TODO Auto-generated method stub
  34. }
  35. public void drawMyShape(PointPostion ps) {
  36. mCanvas = mHolder.lockCanvas();
  37. // draw anything you like
  38. mHolder.unlockCanvasAndPost(mCanvas);
  39. }
  40. }
復制代碼
希望本文對廣大安卓開發者有所幫助,感謝閱讀本文。更多安卓技術問題歡迎加群探討:314230976,驗證碼:eec,不寫驗證不予通過喲~

本文地址:http://m.4huy16.com/thread-121118-1-1.html     【打印本頁】

本站部分文章為轉載或網友發布,目的在于傳遞和分享信息,并不代表本網贊同其觀點和對其真實性負責;文章版權歸原作者及原出處所有,如涉及作品內容、版權和其它問題,我們將根據著作權人的要求,第一時間更正或刪除。
您需要登錄后才可以發表評論 登錄 | 立即注冊

廠商推薦

  • Microchip視頻專區
  • Microchip第22屆中國技術精英年會上海首站開幕
  • “芯”光璀璨,鵬城共賞——2025 Microchip中國技術精英年會深圳站回顧
  • 常見深度學習模型介紹及應用培訓教程
  • 技術熱潮席卷三城,2025 Microchip中國技術精英年會圓滿收官!
  • 貿澤電子(Mouser)專區

相關視頻

關于我們  -  服務條款  -  使用指南  -  站點地圖  -  友情鏈接  -  聯系我們
電子工程網 © 版權所有   京ICP備16069177號 | 京公網安備11010502021702
快速回復 返回頂部 返回列表