如何在android中改变Cropped图像的质量

如何在android中改变Cropped图像的质量,android,camera,size,crop,Android,Camera,Size,Crop,我制作了一个android应用程序,可以从画廊或照相机中拍照 一切都很好,但当我裁剪图像时,它的大小变为160px*160px 我不明白为什么它改变了我照片的大小 private void doCrop() { final ArrayList<CropOption> cropOptions = new ArrayList<CropOption>(); Intent intent = new Intent("com.android.camera.acti

我制作了一个android应用程序,可以从画廊或照相机中拍照

一切都很好,但当我裁剪图像时,它的大小变为160px*160px

我不明白为什么它改变了我照片的大小

private void doCrop() {

    final ArrayList<CropOption> cropOptions = new ArrayList<CropOption>();

    Intent intent = new Intent("com.android.camera.action.CROP");
    intent.setType("image/*");

    List<ResolveInfo> list = getActivity().getPackageManager().queryIntentActivities(intent, 0);

    int size = list.size();

    if (size == 0) {
        Toast.makeText(getActivity(), "no app for crop", Toast.LENGTH_SHORT).show();

        return;
    } else {
        intent.setData(mImageCaptureUri);
      //  intent.putExtra("crop", "false");
        intent.putExtra("aspectX", 1);
        intent.putExtra("aspectY", 1);
        intent.putExtra("outputX", 800);
        intent.putExtra("outputY", 800);


        intent.putExtra("scale", false);
        intent.putExtra("return-data", true);

        if (size == 1) {
            Intent i = new Intent(intent);
            ResolveInfo res = list.get(0);

            i.setComponent(new ComponentName(res.activityInfo.packageName, res.activityInfo.name));


            startActivityForResult(i, CROP_FROM_CAMERA);


            //  mUploadMessage.onReceiveValue( mImageCaptureUri);
        } else {
            for (ResolveInfo res : list) {
                final CropOption co = new CropOption();

                co.title = getActivity().getPackageManager().getApplicationLabel(res.activityInfo.applicationInfo);
                co.icon = getActivity().getPackageManager().getApplicationIcon(res.activityInfo.applicationInfo);
                co.appIntent = new Intent(intent);

                co.appIntent.setComponent(new ComponentName(res.activityInfo.packageName, res.activityInfo.name));

                cropOptions.add(co);
            }

            CropOptionAdapter adapter = new CropOptionAdapter(getActivity().getApplicationContext(), cropOptions);

            AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
            builder.setTitle("app for crop?");
            builder.setAdapter(adapter, new DialogInterface.OnClickListener() {
                public void onClick(DialogInterface dialog, int item) {
                    startActivityForResult(cropOptions.get(item).appIntent, CROP_FROM_CAMERA);
                }
            });




            AlertDialog alert = builder.create();

            alert.show();
        }
    }
}
private void doCrop(){
最终ArrayList cropOptions=新ArrayList();
Intent Intent=newintent(“com.android.camera.action.CROP”);
intent.setType(“image/*”);
List List=getActivity().getPackageManager().QueryInputActivities(intent,0);
int size=list.size();
如果(大小==0){
Toast.makeText(getActivity(),“无作物应用”,Toast.LENGTH_SHORT.show();
返回;
}否则{
intent.setData(mImageCaptureUri);
//意图。额外(“作物”、“虚假”);
intent.putExtra(“aspectX”,1);
意图.putExtra(“aspectY”,1);
意向。额外(“输出”,800);
意向。额外投入(“产出”,800);
意图。额外(“比例”,错误);
intent.putExtra(“返回数据”,true);
如果(大小==1){
意向i=新意向(意向);
ResolveInfo res=list.get(0);
i、 setComponent(新组件名(res.activityInfo.packageName,res.activityInfo.name));
startActivityForResult(i,从摄像头裁剪);
//mUploadMessage.onReceiveValue(mImageCaptureUri);
}否则{
用于(ResolveInfo res:list){
最终CropOption co=新CropOption();
co.title=getActivity().getPackageManager().getApplicationLabel(res.activityInfo.applicationInfo);
co.icon=getActivity().getPackageManager().GetApplicationInfo(res.activityInfo.applicationInfo);
co.appIntent=新意向(意向);
co.appIntent.setComponent(新组件名称(res.activityInfo.packageName,res.activityInfo.name));
添加(co);
}
CropOptionAdapter=新的CropOptionAdapter(getActivity().getApplicationContext(),cropOptions);
AlertDialog.Builder=新建AlertDialog.Builder(getActivity());
builder.setTitle(“作物应用程序?”);
setAdapter(适配器,新的DialogInterface.OnClickListener(){
公共void onClick(对话框接口对话框,int项){
startActivityForResult(cropOptions.get(item).appIntent,从摄像头裁剪);
}
});
AlertDialog alert=builder.create();
alert.show();
}
}
}

。有。请使用一个。感谢您的链接,我检查了它,但我的代码与您的链接相同:(那么你没有阅读我链接到的内容。你正在使用
com.android.camera.action.CROP
。不要这样做。有成百上千的摄像头应用程序,对于这个
Intent
操作有着千差万别的行为,加上根本不支持这个
Intent
操作的设备。不要使用
CROP
意图
,而是在自己的应用程序中使用自己的代码进行图像裁剪。非常感谢,我找到了一个解决方案,可以帮助我使用com.android.camera.action.CROP。再次感谢您的链接和关注