中文字幕第五页-中文字幕第页-中文字幕韩国-中文字幕最新-国产尤物二区三区在线观看-国产尤物福利视频一区二区

Android實現拍照及圖片顯示效果

本文實例為大家分享了Android拍照及圖片顯示的具體代碼,供大家參考,具體內容如下

10年積累的做網站、成都做網站經驗,可以快速應對客戶對網站的新想法和需求。提供各種問題對應的解決方案。讓選擇我們的客戶得到更好、更有力的網絡服務。我雖然不認識你,你也不認識我。但先網站制作后付款的網站建設流程,更有武隆免費網站建設讓你可以放心的選擇與我們合作。

1、功能聲明

當應用需要使用相機、NFC等外設時,需要在AndroidManifest.xml中進行聲明。
這樣,當設備缺少這些外設時,應用商店的安裝程序可以拒絕安裝設備。

聲明示例代碼如下:

<uses-feature android:name="android.hardware.camera2"
    <!-- required為false時,不強制要求設備支持該功能 -->
    <!-- 如果不設置該值,一旦設備不支持camera,就不能安裝該應用-->
    android:required="false"/>

2、創建指向文件的File對象

拍攝的照片可以存放到設備的外部存儲區。

Android為不同的應用分配的獨有的存儲區域,同時按照存儲數據的類型對存儲區域做了進一步地劃分。
設置照片存儲區域的代碼示例如下所示:

public File getPhotoFile(Crime crime) {
  //獲取應用對應的存儲照片的外部存儲路徑
  File externalFilesDir = mContext
      .getExternalFilesDir(Environment.DIRECTORY_PICTURES);

  if (externalFilesDir == null) {
    return null;
  }

  //創建指向文件的File對象
  return new File(externalFilesDir, crime.getPhotoFilename());
}
.............
//每個crime對應的文件名
public String getPhotoFilename() {
  return "IMG_" + getId().toString() + ".jpg";
}

3、觸發拍照

可以使用MediaStore.ACTION_CAPTURE_IMAGE類型的Intent觸發拍照,示例代碼如下:

mPhotoButton = (ImageButton) v.findViewById(R.id.crime_camera);

//隱式Intent觸發相機拍照
final Intent captureImageIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);

//mPhotoFile保存著上文創建的指向指定地址的File
//此處判斷是否有能夠處理隱式Intent的組件
boolean canTakePhoto = mPhotoFile != null
    && captureImageIntent.resolveActivity(packageManager) != null;
mPhotoButton.setEnabled(canTakePhoto);

if (canTakePhoto) {
  //得到File文件對應的Uri地址
  Uri uri = Uri.fromFile(mPhotoFile);

  //將Uri地址存入到Intent中,相機拍照得到的圖像將會存入到該Uri地址對應的File里
  captureImageIntent.putExtra(MediaStore.EXTRA_OUTPUT, uri);
}

mPhotoButton.setOnClickListener(new View.OnClickListener() {
  @Override
  public void onClick(View v) {
    startActivityForResult(captureImageIntent, REQUEST_PHOTO);
  }
});

4、處理拍照結果

拍照完成后,將可以加載得到圖片了。

@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
  .........
  } else if (requestCode == REQUEST_PHOTO) {
    updatePhotoView();
  }
  .........
}

private void updatePhotoView() {
  if (mPhotoFile == null || !mPhotoFile.exists()) {
    mPhotoView.setImageDrawable(null);
  } else {
    //加載圖片對應的縮略圖
    Bitmap bitmap = PictureUtils.getScaledBitmap(mPhotoFile.getPath(), getActivity());
    mPhotoView.setImageBitmap(bitmap);
  }
}

Bitmap只存儲實際像素數據,因此即使原始照片已經壓縮過,但存入Bitmap對象時,文件并不會被壓縮。

因此加載圖片時,需要先按照給定區域的大小合理的縮放文件。 然后,用Bitmap加載縮放后的文件,示例代碼如下:

//在具體視圖未加載前,無法得到視圖的實際大小
//因此根據屏幕尺寸,使用估算值進行縮放
public static Bitmap getScaledBitmap(String path, Activity activity) {
  Point size = new Point();
  activity.getWindowManager().getDefaultDisplay().getSize(size);

  return getScaledBitmap(path, size.x, size.y);
}

public static Bitmap getScaledBitmap(String path, int destWidth, int destHeight) {
  BitmapFactory.Options options = new BitmapFactory.Options();
  options.inJustDecodeBounds = true;

  //按照正常尺寸解析文件
  BitmapFactory.decodeFile(path, options);

  //得到原始文件的寬和高
  float srcWidth = options.outWidth;
  float srcHeight = options.outHeight;

  //inSampleSize表示水平/豎直抽樣比
  //例如,inSampleSize為2時,水平和數值均在原始基礎上,每2個點抽取1個點
  //于是,新圖的大小變為原來的1/4
  int inSampleSize = 1;
  if (srcHeight > destHeight || srcWidth > destWidth) {
    if (srcWidth > srcHeight) {
      inSampleSize = Math.round(srcHeight / destHeight);
    } else {
      inSampleSize = Math.round(srcWidth / destWidth);
    }
   }

  options = new BitmapFactory.Options();
  options.inSampleSize = inSampleSize;

  //按新的抽樣比,重新解析文件
  return BitmapFactory.decodeFile(path, options);
}

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持創新互聯。

分享題目:Android實現拍照及圖片顯示效果
轉載注明:http://www.2m8n56k.cn/article16/pgcigg.html

成都網站建設公司_創新互聯,為您提供移動網站建設、Google、網站營銷、網站收錄軟件開發、全網營銷推廣

廣告

聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:[email protected]。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯

成都定制網站建設
主站蜘蛛池模板: 国外精品视频在线观看免费 | 一级国产精品一级国产精品片 | 欧美久草在线 | 久久一级毛片 | 久久国产精品-国产精品 | 国厂自拍 | 韩国美女爽快一级毛片黄 | 日韩有码第一页 | 欧美一区二区在线观看免费网站 | 久久国产精品免费网站 | 欧美一级片免费在线观看 | 亚洲免费美女视频 | 美女张开腿让男人捅的视频 | 久久精品国产欧美 | 国产精品91在线 | 亚洲精品一区二区三区在线播放 | 成人久久18免费网站 | 三级网站免费看 | 亚洲男人天 | 欧美特黄一区二区三区 | 9久9久热精品视频在线观看 | 自拍视频区 | 九九热视频精品在线观看 | 美女性视频网站 | 日韩福利视频精品专区 | 久操免费在线视频 | 在线成人精品国产区免费 | 成人在线一区二区 | 成人网在线免费观看 | 女人十八一级毛片 | 欧美亚洲精品一区 | 日韩欧美精品在线观看 | 成人欧美视频在线看免费 | 一级毛片真人不卡免费播 | 国产免费自拍视频 | 99久久精品免费精品国产 | 一级淫 | 亚洲国产成人久久精品图片 | 亚洲美女视频网 | 亚洲天堂手机在线 | 亚洲欧美另类色妞网站 |