---
# System prepended metadata

title: 自定義的相機（預覽、拍照）
tags: [實作相關]

---

自定義的相機（預覽、拍照）
===

android有提供兩中方式可以取得相機功能，一種是透過系統提供的intent取得；另外一種則是透過camera相關API直接操作，也是本文要介紹的。

可能要注意以下幾點：
1. 方向的問題，手機相機預設是橫式，若要用直式相機拍，則要對Camera做90度的轉向
2. 儲存也需要處理轉向問題
3. 就是拍照後，要再重新startPreview
4. [照片的解析圖](https://stackoverflow.com/questions/6756888/android-camera-image-size)，此連結提到`getSupportedPictureSizes()`的變數型態可能不一樣，下面我已調整過：
```java=
Camera.Parameters parameters = camera.getParameters();

// 取得圖片大小(解析度), picSizeList 存放圖片的解析度組合, 如(800, 600), (160, 120)等等
// 最前面的索引解析度最高, 故取 index 為 0 的
List<Camera.Size> picSizeList = parameters.getSupportedPictureSizes();
if (!picSizeList.isEmpty()) {
    int w = parameters.getSupportedPictureSizes().get(0).width;
    int h = parameters.getSupportedPictureSizes().get(0).height;
    parameters.setPictureSize(w, h);
}
```

## Ref.
[Android自定义照相机 预览拍照 切换前后置摄像头](https://blog.csdn.net/gf771115/article/details/19438409)

[Android Camera Image Size](https://stackoverflow.com/questions/6756888/android-camera-image-size)

###### tags: `實作相關`