強制終了の嵐です。
鬼門その1
setPictureSizeにはgetSupportedPictureSizesで得られるセット以外は入れない
持ってる実機で通ったからといって安心してはいけません。
適当なサイズを入れるとコロッと落ちます。
あとgetSupportedPictureSizes()で得られるリストの1個目を使うサンプルがよくありますが、このリストは大きい順に並んでいる保証はないようです。
いずれにしろ画像取得する時の処理も考えると、大きさの制限を入れて値を見ながら取得するほうがいいでしょう 。
今回実装したのは以下のような感じです。
public void setPictureSize(Camera cam, int maxWidth) { //端末がサポートするサイズ一覧取得 Camera.Parameters params = cam.getParameters(); List<Size> sizes = params.getSupportedPictureSizes(); if ( sizes != null && sizes.size() > 0) { //撮影サイズを設定する Size setSize = sizes.get(0); for(Size size : sizes){ if(Math.min(size.width, size.height) <= maxWidth) { setSize = size; break; } } params.setPictureSize(setSize.width, setSize.height); cam.setParameters(params); } }
0 件のコメント:
コメントを投稿