2011-07-23 11 views
2

イメージを反時計回りに90度回転させ、イメージが画面を満たさないイメージビューを持っています。イメージが反転して縮尺されません

<?xml version="1.0" encoding="utf-8"?> 

    <LinearLayout 
     android:id="@+id/LinearLayout01" 
     xmlns:android="http://schemas.android.com/apk/res/android" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:orientation="vertical"> 

<ImageView 
    android:id="@+id/image" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content"/> 
</LinearLayout> 

は私のデータベースから画像(IMAGEPATH)のパスを取得し、ビューに挿入するために、このコードを使用する:

Uri uri = Uri.parse(imagePath); 
     img.setImageURI(uri); 

Iのように定義されるimageviewer.xmlを有します

しかし、画像がアクティビティに表示されているときには時計回りに90度回転していて、画面全体を満たしていません - 私は実行前のポートレートモードで非常に同じデバイスで画像を撮っています私のアプリ。

誰かが何が間違っているのか、何が間違っているのでしょうか?

+0

上から下、または左から右に反転しましたか?あなたは回転を意味しますか?反時計回り? – Merlin

+0

私は回転を意味します - 反時計回り:/ – Arcadia

+0

あなたのPCに写真を保存すると、同じ方法で回転していますか? – Merlin

答えて

3

setImageMatrixを使用して画像を回転して拡大縮小する必要があります。

また、画像のscaletypeをMATRIXに設定する必要があります。

//you need a matrix 
Matrix matrix = new Matrix(); 

// set the scale 
matrix.postScale(scaleWidth, scaleHeight); 

// rotate the Bitmap 
matrix.postRotate(90); 

// then apply it 
img.setImageMatrix(matrix); 

は、質問の創始者によって行われたコメントを1としてanddev.org

UPDATE

上のこの良い例があります、より良い例が

Rotating a Bitmap in Androidで見つけることができます

+1

ありがとう..この記事の助けを借りて、http://eventuallyconsistent.net/2011/07/21/rotating-a-bitmap-in-android/#comment-18、私はついにビットマップを回転させました – Arcadia

関連する問題