欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Android開(kāi)發(fā)實(shí)現(xiàn)ImageView加載攝像頭拍攝的大圖功能

 更新時(shí)間:2017年11月10日 10:33:25   作者:AAA啊哈  
這篇文章主要介紹了Android開(kāi)發(fā)實(shí)現(xiàn)ImageView加載攝像頭拍攝的大圖功能,涉及Android基于ImageView的攝像頭拍攝圖片加載、保存及權(quán)限控制等相關(guān)操作技巧,需要的朋友可以參考下

本文實(shí)例講述了Android開(kāi)發(fā)實(shí)現(xiàn)ImageView加載攝像頭拍攝的大圖功能。分享給大家供大家參考,具體如下:

這個(gè)方法是從官方demo中摘錄的,在此記錄學(xué)習(xí)。

權(quán)限

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-feature
  android:name="android.hardware.camera2"
  android:required="false" />

另:關(guān)于權(quán)限控制還可參考:Android Manifest功能與權(quán)限描述大全

設(shè)置變量保存文件存儲(chǔ)路徑

private String mCurrentPhotoPath;
/**
* 拍照f(shuō)lag
*/
private static final int REQUEST_IMAGE_CAPTURE_O = 2;

創(chuàng)建存儲(chǔ)路徑及文件名

 /**
* 創(chuàng)建拍攝的圖片的存儲(chǔ)路徑及文件名
* @return
* @throws IOException
*/
private File createImageFile() throws IOException{
  String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss").format(new Date());
  String imageFileName = "JPEG_" + timeStamp + "_";
  File storageDir = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES);
  Log.d("TrainingFirstActivity", "storageDir:" + storageDir);
  File image = File.createTempFile(imageFileName, ".jpg", storageDir);
  mCurrentPhotoPath = image.getAbsolutePath();
  Log.d("image.getAbsolutePath()", image.getAbsolutePath() + "");
  return image;
}

拍攝圖片并保存

Intent takePictureOintent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
if (takePictureOintent.resolveActivity(getPackageManager()) != null){
 File photoFile = null;
 try {
  photoFile = createImageFile();
 } catch (IOException e) {
  e.printStackTrace();
 }
 if (photoFile != null){
  takePictureOintent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(photoFile));
  startActivityForResult(takePictureOintent, REQUEST_IMAGE_CAPTURE_O);
 }
}

處理并壓縮拍照結(jié)果,takePhotoThenToShowImg是一個(gè)ImageView控件

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
  if (requestCode == REQUEST_IMAGE_CAPTURE_O && resultCode == RESULT_OK){
   int targetW = takePhotoThenToShowImg.getWidth();
   int targetH = takePhotoThenToShowImg.getHeight();
  /* Get the size of the image */
   BitmapFactory.Options bmOptions = new BitmapFactory.Options();
   bmOptions.inJustDecodeBounds = true;
   BitmapFactory.decodeFile(mCurrentPhotoPath, bmOptions);
   int photoW = bmOptions.outWidth;
   int photoH = bmOptions.outHeight;
  /* Figure out which way needs to be reduced less */
   int scaleFactor = 1;
   if ((targetW > 0) || (targetH > 0)) {
    scaleFactor = Math.min(photoW/targetW, photoH/targetH);
   }
  /* Set bitmap options to scale the image decode target */
   bmOptions.inJustDecodeBounds = false;
   bmOptions.inSampleSize = scaleFactor;
   bmOptions.inPurgeable = true;
  /* Decode the JPEG file into a Bitmap */
   Bitmap bitmap = BitmapFactory.decodeFile(mCurrentPhotoPath, bmOptions);
  /* Associate the Bitmap to the ImageView */
   takePhotoThenToShowImg.setImageBitmap(bitmap);
   galleryAddPic();
  }
}

最后可以將拍攝到的照片添加到Media Provider的數(shù)據(jù)庫(kù)中,以便圖庫(kù)或者其他程序讀取照片

/**
* 將拍攝到的照片添加到Media Provider的數(shù)據(jù)庫(kù)中
*/
private void galleryAddPic(){
  Intent mediaScanIntent = new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE);
  File f = new File(mCurrentPhotoPath);
  Uri contentUri = Uri.fromFile(f);
  mediaScanIntent.setData(contentUri);
  this.sendBroadcast(mediaScanIntent);
}

如果只需要縮略圖的話(huà),只要調(diào)攝像頭拍攝直接處理結(jié)果就行

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
 if (requestCode == REQUEST_IMAGE_CAPTURE && resultCode == RESULT_OK){//展示圖片
   Bundle extras = data.getExtras();
   Bitmap imageBitmap = (Bitmap) extras.get("data");
   takePhotoThenToShowImg.setImageBitmap(imageBitmap);
  }
}

更多關(guān)于Android相關(guān)內(nèi)容感興趣的讀者可查看本站專(zhuān)題:《Android拍照與圖片處理技巧總結(jié)》、《Android圖形與圖像處理技巧總結(jié)》、《Android開(kāi)發(fā)入門(mén)與進(jìn)階教程》、《Android調(diào)試技巧與常見(jiàn)問(wèn)題解決方法匯總》、《Android基本組件用法總結(jié)》、《Android視圖View技巧總結(jié)》、《Android布局layout技巧總結(jié)》及《Android控件用法總結(jié)

希望本文所述對(duì)大家Android程序設(shè)計(jì)有所幫助。

相關(guān)文章

  • Android實(shí)現(xiàn)圖片滾動(dòng)效果

    Android實(shí)現(xiàn)圖片滾動(dòng)效果

    這篇文章主要為大家詳細(xì)介紹了Android實(shí)現(xiàn)圖片滾動(dòng)效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-09-09
  • Android Socket通信的簡(jiǎn)單實(shí)現(xiàn)

    Android Socket通信的簡(jiǎn)單實(shí)現(xiàn)

    這篇文章主要為大家詳細(xì)介紹了Android Socket通信的簡(jiǎn)單實(shí)現(xiàn),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-09-09
  • Android創(chuàng)建淡入淡出動(dòng)畫(huà)的詳解

    Android創(chuàng)建淡入淡出動(dòng)畫(huà)的詳解

    大家好,本篇文章主要講的是Android創(chuàng)建淡入淡出動(dòng)畫(huà)的詳解,感興趣的同學(xué)趕快來(lái)看一看吧,對(duì)你有幫助的話(huà)記得收藏一下,方便下次瀏覽
    2021-12-12
  • Android 中使用ContentObserver模式獲取短信用正則自動(dòng)填充驗(yàn)證碼

    Android 中使用ContentObserver模式獲取短信用正則自動(dòng)填充驗(yàn)證碼

    這篇文章主要介紹了Android 中使用ContentObserver模式獲取短信用正則自動(dòng)填充驗(yàn)證碼,首先使用了ContentObserver監(jiān)聽(tīng)短信,然后從短信中用正則的分組去拿到驗(yàn)證碼,具體實(shí)現(xiàn)代碼大家參考下本文
    2017-02-02
  • android 右滑返回的示例代碼

    android 右滑返回的示例代碼

    本篇文章主要介紹了android 右滑返回的示例代碼,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-09-09
  • Android仿微信語(yǔ)音聊天功能

    Android仿微信語(yǔ)音聊天功能

    這篇文章主要介紹了Android仿微信語(yǔ)音聊天功能,很實(shí)用,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2015-12-12
  • 詳解Android創(chuàng)建Handler的必備知識(shí)點(diǎn)

    詳解Android創(chuàng)建Handler的必備知識(shí)點(diǎn)

    本篇文章主要介紹Handler中需要了解的幾個(gè)必備知識(shí)點(diǎn),比如Handler創(chuàng)建、異步Handler是個(gè)啥及如何創(chuàng)建,感興趣的小伙伴快跟隨小編一起學(xué)習(xí)一下
    2022-10-10
  • Android AlarmManager實(shí)現(xiàn)定時(shí)循環(huán)后臺(tái)任務(wù)

    Android AlarmManager實(shí)現(xiàn)定時(shí)循環(huán)后臺(tái)任務(wù)

    這篇文章主要為大家詳細(xì)介紹了Android AlarmManager實(shí)現(xiàn)定時(shí)循環(huán)后臺(tái)任務(wù),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-06-06
  • Android?Camera+SurfaceView自動(dòng)聚焦防止變形拉伸

    Android?Camera+SurfaceView自動(dòng)聚焦防止變形拉伸

    這篇文章主要為大家介紹了Android自定義相機(jī)Camera+SurfaceView實(shí)現(xiàn)自動(dòng)聚焦防止變形拉伸詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-01-01
  • Android XRecyclerView實(shí)現(xiàn)多條目加載

    Android XRecyclerView實(shí)現(xiàn)多條目加載

    這篇文章主要為大家詳細(xì)介紹了Android XRecyclerView實(shí)現(xiàn)多條目加載效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-10-10

最新評(píng)論