詳細說明Android編程環境搭建過程

來源:互聯網
上載者:User

下面我們一起看一下在網路攝影機應用中如何使用這個介面,首先看一下在Android編程環境中的onCreate方法,看完本文你肯定有不少收穫,希望本文能教會你更多東西。

前的智能手機擁有很多強大的功能,例如網路攝影機、GPS和無線上網等,現在是我們開始充分使用這些功能的時候了。在本篇文章中我們一起學習,如何在GoogleAndroid編程環境中,以最簡單的方式實現GoogleAndroid網路攝影機拍照。

 
  1. super.onCreate(icicle);  
  2.  
  3. getWindow().setFormat(PixelFormat.TRANSLUCENT);  
  4.  
  5. requestWindowFeature(Window.FEATURE_NO_TITLE);  
  6.  
  7. getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,  
  8.  
  9. WindowManager.LayoutParams.FLAG_FULLSCREEN);  
  10.  
  11. setContentView(R.layout.camera);  
  12.  
  13. mSurfaceView = (SurfaceView) findViewById(R.id.surface_camera);  
  14.  
  15. mSurfaceHolder = mSurfaceView.getHolder();  
  16.  
  17. mSurfaceHolder.addCallback(this);  
  18.  
  19. mSurfaceHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);  
  20.  

在本文樣本中,我們需要用到兩個檔案:布局檔案和Activity檔案。數日前,Android編程環境(代號cupcake)新版發布,在安全方面有諸多改進。其中之一與網路攝影機許可權控制有關。在此之前,你能夠建立無需使用者許可就可實現拍照的應用。現在該問題已被修複,如果你想在自己的應用中使用網路攝影機,需要在AndroidManifest.xml中增加以下代碼:

 
  1. super.onCreate(icicle);  
  2.  
  3. getWindow().setFormat(PixelFormat.TRANSLUCENT);  
  4.  
  5. requestWindowFeature(Window.FEATURE_NO_TITLE);  
  6.  
  7. getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,  
  8.  
  9. WindowManager.LayoutParams.FLAG_FULLSCREEN);  
  10.  
  11. setContentView(R.layout.camera);  
  12.  
  13. mSurfaceView = (SurfaceView) findViewById(R.id.surface_camera);  
  14.  
  15. mSurfaceHolder = mSurfaceView.getHolder();  
  16.  
  17. mSurfaceHolder.addCallback(this);  
  18.  
  19. mSurfaceHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);  
  20.  

這是開發工作的基礎,也就是說我們希望在應用程式中增加多少輔助性元素,如網路攝影機各種功能按鈕等。在本文中我們採取最簡方式,除了拍照外,沒有多餘網路攝影機功能。下面我們一起看一下本文樣本將要用到的布局檔案“camera_surface.xml”。

小提示:記住不要在資源檔名稱中使用大寫字母,如果你把該檔案命名為“CameraSurface.xml”,會給你帶來不必要的麻煩。該布局非常簡單,只有一個LinearLayout視圖組,在它下面只有一個SurfaceView視圖,也就是我們的網路攝影機螢幕。

該方法讓網路攝影機做好拍照準備,設定它的參數,並開始在Android編程環境螢幕中啟動預覽畫面。我使用了一個“semaphore”參數來防止衝突:當mPreviewRunning為true時,意味著網路攝影機處於啟用狀態,並未被關閉,因此我們可以使用它。

通過這個方法,我們停止網路攝影機,並釋放相關的資源。正如大家所看到的,我們在這兒設定mPreviewRunning為false。以此來防止在surfaceChanged方法中的衝突。原因何在?因為這意味著我們已經關閉了網路攝影機,而且我們不能再設定其參數或在網路攝影機中啟動映像預覽。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.