2011-02-02 16 views
2

私はAndroid SDKサンプルを使用してカメラから画像を取得しています。以下のコードは、私がコードに追加した唯一のロジックです。基本的に私は、ビットマップに変換して表示している画像を撮影しています。残念ながら、これは任意の助けがsurfaceChangedで問題を発見画像を歪ませると画像が歪みます

@Override 
public boolean onKeyDown(int keyCode, KeyEvent event) { 
    switch(keyCode){ 
     case KeyEvent.KEYCODE_CAMERA: 
      mCamera.takePicture(null, null,new PictureCallback(){ 

       @Override 
       public void onPictureTaken(byte[] data, Camera camera) { 
        showPicture(data); 
       } 

      }); 
      break; 
    } 
    return super.onKeyDown(keyCode, event); 
} 

void showPicture(byte[] data) { 

    if (data != null) { 
     Bitmap picture = BitmapFactory 
       .decodeByteArray(data, 0, data.length); 
     ImageView view = new ImageView(this); 
     view.setImageBitmap(picture); 
     this.setContentView(view); 

    } 

} 

答えて

2

を理解されるであろう(エミュレータ上でそれだけで結構です)歪んだ画像と実際の携帯電話に

結果方法これらの行は責任を負うことになります。

List sizes = parameters.getSupportedPreviewSizes(); if (sizes != null) { Size optimalSize = getOptimalPreviewSize(sizes, width, height); parameters.setPreviewSize(optimalSize.width, optimalSize.height); } else { parameters.setPreviewSize(width, height); }


これらを削除するとすべての問題が解決しました。今私は、これはこれはG2で発生し、新たな問題
ところで

を生じないことを確認する必要があります

関連する問題