Android硬體學習-照相機

來源:互聯網
上載者:User

標籤:android   style   blog   http   io   ar   os   使用   java   

學習Android不能不學習照相機,現在各種美容相機,朋友圈發圖,現在升級之後直接下拉就可以照相了,各種豔照的的源頭也是照相機,扯遠了,有點邪惡了,還是簡單學習一下Android中照相機的使用,Android中照相機的使用一般分為兩種使用已有的照相App(可以理解為系統內建的照相機)和單獨建立一個照相App,第一種方式簡單易懂,第二種方式如果做的好的話可以養活一個公司~今天就簡單的描述一下第一種的調用~

基礎工作

調用照相機需要照相,照相就需要儲存,存在外部儲存中需要設定許可權,本次設定的三個許可權:一個是調用Camera許可權,第二個是要求裝置有照相機,第三個是在外部裝置寫的許可權:

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

  簡單的頁面,一個Buttom,一個ImageView:

Demo實現

簡單的三部曲,首先建立Intent,然後啟動Intent,最後接收結果,沒有自拍,就用的是類比的:

拍照事件:

public void cameraEvent(View view) {intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);// 建立一個意圖去擷取圖片file= getOutputMediaFile(); // 擷取路徑intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(file)); // 設定檔案名稱// 啟動IntentstartActivityForResult(intent, IMAGE_REQUEST_CODE);}

擷取檔案路徑的方法:

// 圖片路徑private static File getOutputMediaFile() {File mediaStorageDir = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES),tag);if (!mediaStorageDir.exists()) {if (!mediaStorageDir.mkdirs()) {Log.d(tag, "儲存目錄建立失敗");return null;}}// 建立檔案名稱String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss").format(new Date());File mediaFile = null;mediaFile = new File(mediaStorageDir.getPath() + File.separator+ "IMG_" + timeStamp + ".jpg");Log.d(tag, "儲存目錄:" + mediaFile);return mediaFile;}

 完成之後的接收事件需要重寫Activity中的onActivityResult方法:

@Overrideprotected void onActivityResult(int requestCode, int resultCode, Intent data) {// TODO Auto-generated method stubif(requestCode == IMAGE_REQUEST_CODE&&resultCode==RESULT_OK) {imageView=(ImageView) findViewById(R.id.camera_img);//兩種設定方式//圖片較大的時候可以使用這種Bitmap  bitmap=BitmapFactory.decodeFile(file.toString());imageView.setImageBitmap(bitmap);//    imageView.setImageURI(Uri.fromFile(file));}super.onActivityResult(requestCode, resultCode, data);}

  效果如下:

 

主要參考資料:http://developer.android.com/guide/topics/media/camera.html

Android硬體學習-照相機

聯繫我們

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