電話のURIから画像を表示したい画像ビューがあります
写真のビットマップを、取り込まれた向きに合わせて回転させたいのですが、常に同じ向きで写真を表示することはできません。
これは私のImageViewです:
<!-- picture imageView -->
<ImageView
android:id="@+id/fragment_new_picture_imageview_picture"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:contentDescription="@string/app_name"
android:scaleType="fitXY" />
これは私の行列関数です:
/**
* Get the new picture {@link Bitmap} according to picture's right orientation
* @return the picture's {@link Bitmap}
*/
public Bitmap getPictureBitmap()
{
//if there is a saved instance - return it
if (pictureBitmap != null)
return pictureBitmap;
//decode bitmap
Bitmap bitmap = BitmapFactory.decodeFile(path);
//rotate bitmap
Matrix matrix = new Matrix();
matrix.postRotate(orientation);
//create new rotated bitmap
bitmap = Bitmap.createBitmap(bitmap, 0, 0,bitmap.getWidth(), bitmap.getHeight(), matrix, true);
return bitmap;
}
そして、これは私のアクティビティがマニフェストでどのように言及されているかです:
<activity
android:name="com.coapps.pico.background.BackgroundActivity"
android:screenOrientation="portrait"
android:theme="@style/MainActivityTheme" >
</activity>
向きは、Media.EXTERNAL_CONTENT_URI へのクエリと Media_ORIENTATION フィールドの取得を使用して指定されます。