学习《第一行代码》,在第8章,发现从相册中选择照片后进入不了裁剪界面,网上找到的答案都不行(先用网上的方法解决了,后来又不行了,谁让我用的是充话费送的手机呢)。最后查看Gallery中的ImageGallery.java中的源码找到了可行的解决方法。部分源代码如下:
private void launchCropperOrFinish(IImage img) {
Bundle myExtras = getIntent().getExtras();
long size = MenuHelper.getImageFileSize(img);
if (size < 0) {
// Return if the image file is not available.
return;
}
if (size > mVideoSizeLimit) {
DialogInterface.OnClickListener buttonListener =
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
}
};
new AlertDialog.Builder(this)
.setIcon(android.R.drawable.ic_dialog_info)
.setTitle(R.string.file_info_title)
.setMessage(R.string.video_exceed_mms_limit)
.setNeutralButton(R.string.details_ok, buttonListener)
.show();
return;
}
String cropValue = myExtras != null ?
myExtras.getString("crop") : null;
从源代码可以看出“crop”是从bundle中取的,所以我把intent.putExtra("crop", true);
改为Bundle bundle=new Bundle(); bundle.putString("crop","true"); intent.putExtras(bundle);
更改后程序运行正常。