2011-07-04 12 views

Respuesta

11

Para llevar a cabo la rotación de la imagen que puede tener el siguiente código:

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); 

y de recorte de imágenes tomadas de la galería de utilizar el siguiente fragmento de código:

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); 

Esperanza , esto será útil para ti.

+0

su respuesta me ayudó a mí también, estaba luchando para rotar la imagen del último tiempo ... gracias Nikki – AAnkit

+0

Esto también me ayuda mucho. Gracias. –

+0

ERROR/(5824): no se puede abrir '/ image/*' ¿por qué? ¿Tiene alguna idea? – DuyguK

1

Pruebe el siguiente código para recortar la imagen seleccionada del gallary.

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); 

} 
} 
} 

y también echar un vistazo a este Tutorial1, tutorial2

+0

este código abrir la galería primero, lo he implementado a través de tutorial2, Quiero abrir una imagen específica para recortar, no para seleccionar de la galería, la imagen está predeterminada existe ... ¿me ayudarías? ? –

Cuestiones relacionadas