2011-08-02 18 views
0

今日このトピックについて私の2番目の質問はありますが、前の質問では十分明確ではないようです。イメージの向きを設定する際の問題

私は写真を撮るために私自身のカメラを構築しています。私はのような何かをやっているこの活動のonCreate()方法で :

this.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE); 

そうでない場合は私の全体の画面は次のようになります。 .Anywayはこの瞬間のために私の問題を解決し、画像が格好良いです。

写真を撮った後、バンドルを使用して画像を別のアクティビティ(アクティビティB)に送信し、そこで画像を編集し、その後画像をウェブサイトに保存します。

そして、ここで問題です:この活動に受信 画像は再びここのように間違って方向付けされています! [ここに画像の説明を入力] [1]私だけで、画像自体により任意の操作を行っていないので、アクティビティの方向。

ここではほとんど同じことをやって、LANDSCAPEモードでの活動を設定できました。私の活動は再びよく見えますが、ウェブサイトに画像をアップロードすると、これはウェブサイト私は自分のオリエントを設定するために何もしていないという単純な事実のために。

だから、私のsurfaceChanged()に - activity Aで、私はこのような何かをやった最初のものは、この方法:

Camera.Parameters p = mCamera.getParameters(); 
p.set("orientation", "landscape"); 
p.setRotation(90); 
mCamera.setParameters(p); 

をしかし、これは画像には影響ありません、それは同じように見えます。

私はSony Ericssonに取り組んでいます。画像を回転するときに助けが必要です - orientation of my activityを設定しないでください!

Camera.PictureCallback mPictureCallback = new Camera.PictureCallback(){ 
     public void onPictureTaken(byte[] imageData, Camera c) { 

      if (imageData != null) { 

       Intent mIntent = new Intent(); 

       //StoreByteImage(mContext, imageData, 50, "ImageName"); 
       mCamera.startPreview(); 

       Bundle b = new Bundle(); 
       b.putByteArray("imageData", imageData); 
       Intent i = new Intent(mContext,ImageDisplayActivity.class); 
       i.putExtras(b); 
       startActivity(i); 

       setResult(FOTO_MODE, mIntent); 
       finish(); 

      } 
     } 
    }; 

そしてactivity Bところ私は:私は私がこれをやっている画像を取っているactivity Aで :

は、私はさらにdetails.Thanksのためにここに

EDITよ、ありがとう画像を受け取っています。私はこれをやっています:

Bundle extras = getIntent().getExtras(); 
BitmapFactory.Options options=new BitmapFactory.Options(); 
     options.inSampleSize = 5; 
     byte[] imageData = extras.getByteArray("imageData"); 
     Bitmap myImage = BitmapFactory.decodeByteArray(imageData , 0, imageData.length,options); 
....///is set up the bitmap to an imageview 
+0

'私はバンドルを使用していますを見つけ、別の画像を送信しますアクティビティ(アクティビティB) '' bundle'コードを表示する –

+0

実際、知りたいのは 'イメージはビットマップなのですか? –

+0

私の編集を見て.... :) – adrian

答えて

2

私はあなたが問題を過大評価しています!

Matrix mat = new Matrix(); 
mat.postRotate(90); 
image_to_upload = Bitmap.createBitmap(myImage, 0, 0, myImage.getWidth(), myImage.getHeight(), mat, true); 

をアップロードする前myImageを回転しようとするが、私はこれが問題であると確信して異なる角度を試してみて、あなたは正しい道に

+0

私はそれを過大評価するかもしれませんが、私はもうそれを取ることができます。私の投稿は少し劇的に聞こえるかもしれませんが、 – adrian

+0

私の提案をお試しくださいましたか? –

+0

はい、それは動作しています:D ...しかし、私は別の問題に直面しています - 私はフルスクリーンを見るようにすることはできません:) – adrian