自己編寫Android手電筒,支援5.0

來源:互聯網
上載者:User

標籤:android   camera   手電筒   閃光燈   5.0   

  android手電筒原理很簡單,就是開啟相機的閃光燈。

  核心的代碼就這麼多:

    開啟相機

    設定閃光燈開

    開啟預覽

    設定相機的autoFocus

    Camera camera = Camera.open();    Parameters mParameters = camera.getParameters();    mParameters.setFlashMode(Camera.Parameters.FLASH_MODE_TORCH);     camera.setParameters(mParameters);    camera.startPreview();    camera.autoFocus(new AutoFocusCallback() {public void onAutoFocus(boolean success, Camera camera) {}    });
  這幾個步驟缺一不可。照網上之前的例子試了,一直不成功。就是因為有些缺了開啟預覽,有些缺了autoFocus


  然後就是設定許可權

 

    <uses-permission android:name="android.permission.CAMERA"/>    <uses-permission android:name="android.permission.FLASHLIGHT" />     <uses-feature android:name="android.hardware.camera" />    <uses-feature android:name="android.hardware.camera.autofocus" />    <uses-feature android:name="android.hardware.camera.flash" />

  最後貼以下完整的Activity。我這個很簡單,create的時候就開啟手電筒,螢幕上顯示”Flashlight open“,按返回鍵,關閉並退出應用。

   

package org.lhc.flashlight;import android.app.Activity;import android.hardware.Camera;import android.hardware.Camera.AutoFocusCallback;import android.hardware.Camera.Parameters;import android.os.Bundle;import android.util.Log;import android.view.KeyEvent;import android.widget.TextView;public class MainActivity extends Activity {private Camera camera = null;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);this.camera = Camera.open();if (this.camera != null) {Parameters mParameters = camera.getParameters();mParameters.setFlashMode(Camera.Parameters.FLASH_MODE_TORCH); camera.setParameters(mParameters);camera.startPreview();camera.autoFocus(new AutoFocusCallback() {public void onAutoFocus(boolean success, Camera camera) {}});TextView info = (TextView)this.findViewById(R.id.flashlight_info);info.setText("Flashlight open");}}@Overridepublic boolean onKeyDown(int keyCode, KeyEvent event) {if (keyCode == KeyEvent.KEYCODE_BACK) {if (this.camera != null) {Parameters mParameters = camera.getParameters();mParameters.setFlashMode(Camera.Parameters.FLASH_MODE_OFF);camera.setParameters(mParameters);camera.stopPreview();camera.release();}Log.i("Flashlight", "exit");this.finish();System.exit(0);}return super.onKeyDown(keyCode, event);}}

轉載請註明出處

http://blog.csdn.net/redstarofsleep

自己編寫Android手電筒,支援5.0

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.