2011-07-04 18 views

答えて

11

次のコードすることができ、画像の回転を実行するには、次の

Bitmap bMap = BitmapFactory.decodeResource(getResources(),R.drawable.test); 
Matrix mat = new Matrix(); 
mat.postRotate(90); 
Bitmap bMapRotate = Bitmap.createBitmap(bMap, 0, 0, 
          bMap.getWidth(), bMap.getHeight(), mat, true); 
BitmapDrawable bmd = new BitmapDrawable(bMapRotate); 
image.setImageBitmap(bMapRotate); 
image.setImageDrawable(bmd); 

やギャラリーから撮影した画像切り出しは、次のコードスニペットを使用のために:

Intent viewMediaIntent = new Intent(); 
    viewMediaIntent.setAction(android.content.Intent.ACTION_VIEW); 
    File file = new File("/image/*");  
    viewMediaIntent.setDataAndType(Uri.fromFile(file), "image/*"); 
    viewMediaIntent.putExtra("crop","true"); 
    viewMediaIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_SINGLE_TOP); 
    startActivityForResult(viewMediaIntent,1); 

希望をこれはあなたに役立つでしょう。

+0

あなたの答えは私も助けてくれました、最後のある時間からイメージを回転させるために戦っていました。ありがとうNikki – AAnkit

+0

これはまた私に多くの助けになります。ありがとう。 –

+0

エラー/(5824): '/ image/*'を開くことができませんなぜですか?あなたは何か考えていますか? – DuyguK

1

ガレリアから選択した画像を切り抜くには、次のコードを試してください。

private static final String TEMP_PHOTO_FILE = "temporary_holder.jpg"; 

Intent photoPickerIntent = new Intent(Intent.ACTION_PICK, android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI); 
photoPickerIntent.setType("image/*"); 
photoPickerIntent.putExtra("crop", "true"); 
photoPickerIntent.putExtra(MediaStore.EXTRA_OUTPUT, getTempUri()); 
photoPickerIntent.putExtra("outputFormat", Bitmap.CompressFormat.JPEG.toString()); 
startActivityForResult(photoPickerIntent, REQ_CODE_PICK_IMAGE); 


private Uri getTempUri() { 
return Uri.fromFile(getTempFile()); 
} 

private File getTempFile() { 
if (isSDCARDMounted()) { 

File f = new File(Environment.getExternalStorageDirectory(),TEMP_PHOTO_FILE); 
try { 
f.createNewFile(); 
} catch (IOException e) { 

} 
return f; 
} else { 
return null; 
} 
} 

private boolean isSDCARDMounted(){ 
String status = Environment.getExternalStorageState(); 
if (status.equals(Environment.MEDIA_MOUNTED)) 
return true; 
return false; 
} 




protected void onActivityResult(int requestCode, int resultCode, 
    Intent imageReturnedIntent) { 
super.onActivityResult(requestCode, resultCode, imageReturnedIntent); 

switch (requestCode) { 
case REQ_CODE_PICK_IMAGE: 
    if (resultCode == RESULT_OK) { 
     if (imageReturnedIntent!=null){ 



      File tempFile = getTempFile(); 

      String filePath= Environment.getExternalStorageDirectory() 
     + "/temporary_holder.jpg"; 
      System.out.println("path "+filePath); 


Bitmap selectedImage = BitmapFactory.decodeFile(filePath); 
_image = (ImageView) findViewById(R.id.image); 
_image.setImageBitmap(selectedImage); 

} 
} 
} 

もこのTutorial1を見て、tutorial2

+0

でこのクロールを開くには、複数のオプションを表示するこのコードを最初に開いて、私はtutorial2を通して実装しました ギャラリーから選択するのではなく、特定の画像をトリミングするには、画像がデフォルトで存在します... ? –

関連する問題