在Android调用系统方法对图片进行裁剪时,华为手机显示的图形会变成圆形,改为aspectX和aspectY不是1;1就好 // 此方法为截取 100*100照片大小 Intent intent = new Intent("com.android.camera.action.CROP"); if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.KITKAT) { String url = getPath(NewBinderActivity.this, uri); intent.setDataAndType(Uri.fromFile(new File(url)), "image/*"); } else { intent.setDataAndType(uri, "image/*"); } // 设置裁剪 intent.putExtra("crop", "true"); // aspectX aspectY 是宽高的比例 if(android.os.Build.MODEL.contains("HUAWEI")) {//华为特殊处理 不然会显示圆 intent.putExtra("aspectX", 9998); intent.putExtra("aspectY", 9999); } else { intent.putExtra("aspectX", 1); intent.putExtra("aspectY", 1); }
// outputX outputY 是裁剪图片宽高 intent.putExtra("outputX", 200); intent.putExtra("outputY", 200); intent.putExtra("return-data", true); startActivityForResult(intent, resultCode);
之前在两款华为手机上进行了测试 都没有问题 后来用的一款出现了 系统裁剪 还是圆形 对华为手机类型判断失效了 由于机型过多 所以放弃了系统的裁剪框 直接应用第三方的裁剪框 完全解决了不同机型的系统适配问题 我把方法写在了后面的 华为图片裁剪框圆形修改的方法 里面 关于第三方使用的方法 确实很方便
|