カメラアプリで歪んだプレビューが表示されてしまう問題

これは、出る人と出ない人がいると思いますが、僕の方で違和感の出るくらいに表示されていたので、解決してみました。

(多くのカメラアプリのレクチャーでは、画像の保存を行うだけで、データベースの保存やディレクトリの作成、判別をしてないからかと思うのですが。。)

画像を保存した後にプレビューの画面が一瞬ですが歪んで見えます。

この原因の箇所はどうやら、takePictureのjpg生成の部分で発生がしているようでした。

前回までの流れで、「sdカードを確認⇒保存⇒カメラのプレビューを再開」でした。

ここで、カメラのプレビュー再開の時に何か問題が?

と思って、カメラのプレビューを再開をやめたらゆがみっぱなしでした。

startPreview()

に関してですが、始まるまで歪んでいるようだったので、「カメラのプレビューを再開⇒sdカードを確認⇒保存」に変更をしてみたところ歪まないで普通に表示ができました。

↓コールバックの部分

private Camera.PictureCallback mPictureListener =new Camera.PictureCallback() {
 public void onPictureTaken(byte[] data, Camera camera) {
 myCamera.startPreview();
 if (data != null) {
 if(!sdcardWriteReady()){
 Toast.makeText(context, "SDCARDが認識されません。", Toast.LENGTH_SHORT).show();
 bool = true;
 return;
 }
 FileOutputStream foStream = null;
 //フォルダのパスを表示します。。
 File file = new File(Environment.getExternalStorageDirectory().getPath() + "/cmr/");
 //フォルダが存在しなかった場合にフォルダを作成します。
 if(!file.exists()){
 file.mkdir();
 }
 //これで他のとかぶらない名前の設定ができました。
 String imgName = Environment.getExternalStorageDirectory().getPath() + "/cmr/" + System.currentTimeMillis() +".jpg";
 try {
 foStream = new FileOutputStream(imgName);
 foStream.write(data);
 foStream.close();
 ContentValues values = new ContentValues();
 ContentResolver contentResolver = context.getContentResolver();
 values.put(Images.Media.MIME_TYPE, "image/jpeg");
 values.put("_data", imgName);
 try {
 contentResolver.insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, values);
 }catch(Exception e){
 Toast.makeText(context, "再起動後に画像が認識されます。", Toast.LENGTH_SHORT).show();
 e.printStackTrace();
 }
 } catch (Exception e) {
 Toast.makeText(context, "ファイルの保存中にエラーが発生しました。", Toast.LENGTH_SHORT).show();
 e.printStackTrace();
 }
 bool = true;
 }else{
 Toast.makeText(context, "データが取得できませんでした。", Toast.LENGTH_SHORT).show();
 bool = true;
 }
 }
 };

実際にデータをjpgに圧縮などしているのでその過程の産物なような気がします。

メモリ的な事を考えると、とめておいた方がよいような気もしますが、

また、何か分かりましたらご報告します。

前後の記事

前の記事:

次の記事:

関連の記事

コメントの投稿

  • サイト内検索

新作アプリの紹介

関連サイトの紹介

アンドロイドアプリ開発TIPS
きぐるみカメラ
ふらいぱん
アンドロイドのデザイン集
Page top↑