2015-07-03 38 views
2

我想从图库或相机中获取图像,然后我想以特定的高宽比剪裁它。 但是这段代码在棒棒糖版本中工作,而它在KitKat中有效。 任何人都可以帮助解决这个问题。剪裁不适用于Nexus 5,设备版本5.1.1

public class MainActivity extends Activity { 
private static final int PICK_FROM_CAMERA = 1; 
private static final int PICK_FROM_GALLERY = 2; 
ImageView imgview; 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    imgview = (ImageView) findViewById(R.id.imageView1); 
    Button buttonCamera = (Button) findViewById(R.id.btn_take_camera); 
    Button buttonGallery = (Button) findViewById(R.id.btn_select_gallery); 
    buttonCamera.setOnClickListener(new View.OnClickListener() { 

     public void onClick(View v) { 
    // call android default camera 
      Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); 

      intent.putExtra(MediaStore.EXTRA_OUTPUT, 
        MediaStore.Images.Media.EXTERNAL_CONTENT_URI.toString()); 
        // ******** code for crop image 
      intent.putExtra("crop", "true"); 
      intent.putExtra("aspectX", 2); 
      intent.putExtra("aspectY", 2); 
      intent.putExtra("outputX", 150); 
      intent.putExtra("outputY", 150); 


      intent.putExtra("return-data", true); 
      startActivityForResult(intent, PICK_FROM_CAMERA); 


     } 
    }); 
    buttonGallery.setOnClickListener(new View.OnClickListener() { 

     @Override 
     public void onClick(View v) { 
      //// //TODO Auto-generated method stub 
      Intent intent = new Intent(); 
      // call android default gallery 
      intent.setType("image/*"); 
      intent.setAction(Intent.ACTION_GET_CONTENT); 
      // ******** code for crop image 
      intent.putExtra("crop", "true"); 
      intent.putExtra("aspectX", 2); 
      intent.putExtra("aspectY", 2); 
      intent.putExtra("outputX", 150); 
      intent.putExtra("outputY", 150); 


      try { 

       intent.putExtra("return-data", true); 
       startActivityForResult(Intent.createChooser(intent, 
         "Complete action using"), PICK_FROM_GALLERY); 

      } catch (ActivityNotFoundException e) { 
       // Do nothing for now 
      } 
     } 
    }); 
} 

protected void onActivityResult(int requestCode, int resultCode, Intent data) { 

    if (requestCode == PICK_FROM_CAMERA) { 
     Bundle extras = data.getExtras(); 

     Bitmap photo = extras.getParcelable("data"); 
     imgview.setImageBitmap(photo); 


    } 

    if (requestCode == PICK_FROM_GALLERY) { 
     Bundle extras2 = data.getExtras(); 
     if (extras2 != null) { 
      Bitmap photo = extras2.getParcelable("data"); 
      imgview.setImageBitmap(photo); 

     } 
    } 
} 

}

回答

0

必须在最后一部分的权利越来越extras2为空?

同样的事情发生在我身上!你能解释一下发生了什么吗?它是否会崩溃照片应用程序,或者您在imageView中看不到更新?

相关问题