拍照相册选择剪裁

添加jar包picasso-2.5.2.jar

1.MianActivity
private Uri imageUri;
private int from = -1;

在onCreate中添加
initViews();
private void initViews() {
    photoList = new ArrayList<>();
    photoList.add("拍照");
    photoList.add("从相册中选择");
}
private void dialogListShow(final int i) {
    View photoView = View.inflate(MyZiliaoActivity.this, R.layout.item_listview_dialog, null);//填充ListView布局
    ListView listView = (ListView) photoView.findViewById(R.id.lv_item_listview_dialog);//初始化ListView控件
    listView.setAdapter(new DialogListViewAdapter(MyZiliaoActivity.this, photoList));//ListView设置适配器
    final AlertDialog dialog2 = new AlertDialog.Builder(MyZiliaoActivity.this)
            .setView(photoView)//在这里把写好的这个listview的布局加载dialog            .create();
    dialog2.show();
    listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {//响应listview中的item的点击事件

        @Override
        public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
                                long arg3) {
            // TODO Auto-generated method stub
            TextView tv = (TextView) arg1.findViewById(R.id.tv_item_listview_dialog_text);//取得每条item中的textview控件
            String aiche = tv.getText().toString();
            if ("拍照".equals(aiche)) {
                File outputImage = new File(getExternalCacheDir(),
                        "output_image"+i+".jpg");
                try {
                    if (outputImage.exists()) {
                        outputImage.delete();
                    }
                    outputImage.createNewFile();
                } catch (IOException e) {
                    e.printStackTrace();
                }
                if (Build.VERSION.SDK_INT >= 24) {
                    imageUri = FileProvider.getUriForFile(MyZiliaoActivity.this,
                            "com.example.administrator.ydxcfwpt.fileprovider", outputImage);
                } else {
                    imageUri = Uri.fromFile(outputImage);
                }
                Intent intent = new Intent("android.media.action.IMAGE_CAPTURE");
                intent.putExtra(MediaStore.EXTRA_OUTPUT, imageUri);
                from = i;
                startActivityForResult(intent, TAKE_PHOTO);
            } else if ("从相册中选择".equals(aiche)) {
                Intent intent = new Intent("android.intent.action.GET_CONTENT");
                intent.setType("image/*");
                from = i;
                startActivityForResult(intent, CHOOSE_PHOTO);
            }
            dialog2.dismiss();
        }
    });
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
    switch (requestCode) {
        case TAKE_PHOTO:
            if (resultCode == RESULT_OK) {
                beginCrop(imageUri,from);
            }
            break;
        case CHOOSE_PHOTO:
            if (resultCode == RESULT_OK) {
                if (Build.VERSION.SDK_INT >= 19) {
                    handleImageOnKatKit(data);
                } else {
                    handleImageBeforKatKit(data);
                }
            }
            break;
        case Crop.REQUEST_PICK:
            if (resultCode == RESULT_OK) {
                beginCrop(data.getData(),from);
            }
            break;
        case Crop.REQUEST_CROP:
            handleCrop(resultCode, data);
    }
}
// 将裁剪回来的数据进行处理
private void handleCrop(int resultCode, Intent data) {
    if (resultCode == RESULT_OK) {
        Uri uri = Crop.getOutput(data);
        try {
            if (from == 1) {
                iv_touxiang.setImageBitmap(null);
                touxiangFile = new File(ImageUtils.saveBitmap(MyZiliaoActivity.this, uri.getPath()));
                Uri image = Uri.fromFile(touxiangFile);
                Picasso.with(MyZiliaoActivity.this).load(image)
                        .memoryPolicy(MemoryPolicy.NO_CACHE)
                        .networkPolicy(NetworkPolicy.NO_CACHE)
                        .error(R.drawable.morentouxiang)
                        .into(iv_touxiang);
                Log.i("image", "touxiangFile=" + touxiangFile.getAbsolutePath());
            } else if (from == 2) {
                iv_zhengmian.setImageBitmap(null);
                zhengmianFile = new File(ImageUtils.saveBitmap(MyZiliaoActivity.this, uri.getPath()));
                Uri image = Uri.fromFile(zhengmianFile);
                Picasso.with(MyZiliaoActivity.this).load(image)
                        .memoryPolicy(MemoryPolicy.NO_CACHE)
                        .networkPolicy(NetworkPolicy.NO_CACHE)
                        .error(R.drawable.zhanwei)
                        .into(iv_zhengmian);
                Log.i("image", "zhengmianFile=" + zhengmianFile.getAbsolutePath());
            }else if (from == 3) {
                iv_fanmian.setImageBitmap(null);
                fanmianFile = new File(ImageUtils.saveBitmap(MyZiliaoActivity.this, uri.getPath()));
                Uri image = Uri.fromFile(fanmianFile);
                Picasso.with(MyZiliaoActivity.this).load(image)
                        .memoryPolicy(MemoryPolicy.NO_CACHE)
                        .networkPolicy(NetworkPolicy.NO_CACHE)
                        .error(R.drawable.beimian)
                        .into(iv_fanmian);
                Log.i("image", "fanmianFile=" + fanmianFile.getAbsolutePath());
            }else if (from == 4) {
                iv_shouchi.setImageBitmap(null);
                shouchiFile = new File(ImageUtils.saveBitmap(MyZiliaoActivity.this, uri.getPath()));
                Uri image = Uri.fromFile(shouchiFile);
                Picasso.with(MyZiliaoActivity.this).load(image)
                        .memoryPolicy(MemoryPolicy.NO_CACHE)
                        .networkPolicy(NetworkPolicy.NO_CACHE)
                        .error(R.drawable.shouchi)
                        .into(iv_shouchi);
                Log.i("image", "shouchiFile=" + shouchiFile.getAbsolutePath());
            }

        } catch (Exception e) {
            e.printStackTrace();
        }
    } else if (resultCode == Crop.RESULT_ERROR) {
        Toast.makeText(MyZiliaoActivity.this, Crop.getError(data).getMessage(),
                Toast.LENGTH_SHORT).show();

    }
}
// 开始裁剪
private void beginCrop(Uri uri,int i) {
    Uri destination = Uri.fromFile(new File(getCacheDir(), "cropped"+i+".jpg"));
    // start() 方法根据其的需求选择不同的重载方法
    Crop.of(uri, destination).withMaxSize(500,500).start(MyZiliaoActivity.this);
}
private void handleImageBeforKatKit(Intent data) {
    Uri uri = data.getData();
    String imagePath = getImagePath(uri, null);
    disPlayImage(imagePath);
}

@TargetApi(19)
private void handleImageOnKatKit(Intent data) {
    String imagePath = null;
    Uri uri = data.getData();
    if (DocumentsContract.isDocumentUri(MyZiliaoActivity.this, uri)) {
        //  如果是Document类型的uri,则通过Document  Id处理
        String docId = DocumentsContract.getDocumentId(uri);
        if ("com.android.providers.media.documents".equals(uri.getAuthority())) {
            String id = docId.split(":")[1];
            String selection = MediaStore.Images.Media._ID + "=" + id;
            imagePath = getImagePath(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, selection);
        } else if ("com.android.providers.downloads.documents".equals(uri.getAuthority())) {
            Uri contentUri = ContentUris.withAppendedId(Uri.parse(
                    "content://downloads/public/_downloads"), Long.valueOf(docId));
            imagePath = getImagePath(contentUri, null);
        }
    } else if ("content".equalsIgnoreCase(uri.getScheme())) {
        //如果是content类型的uri,则使用普通方式处理
        imagePath = getImagePath(uri, null);
    } else if ("file".equalsIgnoreCase(uri.getScheme())) {
        //如果是file类型的uri,则直接获取图片路径即可
        imagePath = uri.getPath();
    }
    disPlayImage(imagePath);
}

private void disPlayImage(String imagePath) {
    if (imagePath != null) {
        Uri uri = Uri.fromFile(new File(imagePath));
        beginCrop(uri,from);
    } else {
        Toast.makeText(MyZiliaoActivity.this, "图片选取失败", Toast.LENGTH_SHORT).show();
    }
}
private String getImagePath(Uri uri, String selection) {
    String path = null;
    //通过uriselection来获取图片的真是路径
    Cursor cursor = getContentResolver().query(uri, null, selection, null, null);
    if (cursor != null) {
        if (cursor.moveToFirst()) {
            path = cursor.getString(cursor.getColumnIndex(MediaStore.Images.Media.DATA));
        }
        cursor.close();
    }
    return path;
在点击事件中添加方法
 
dialogListShow(1)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
毕业设计,基于SpringBoot+Vue+MySQL开发的纺织品企业财务管理系统,源码+数据库+毕业论文+视频演示 在如今社会上,关于信息上面的处理,没有任何一个企业或者个人会忽视,如何让信息急速传递,并且归档储存查询,采用之前的纸张记录模式已经不符合当前使用要求了。所以,对纺织品企业财务信息管理的提升,也为了对纺织品企业财务信息进行更好的维护,纺织品企业财务管理系统的出现就变得水到渠成不可缺少。通过对纺织品企业财务管理系统的开发,不仅仅可以学以致用,让学到的知识变成成果出现,也强化了知识记忆,扩大了知识储备,是提升自我的一种很好的方法。通过具体的开发,对整个软件开发的过程熟练掌握,不论是前期的设计,还是后续的编码测试,都有了很深刻的认知。 纺织品企业财务管理系统通过MySQL数据库与Spring Boot框架进行开发,纺织品企业财务管理系统能够实现对财务人员,员工,收费信息,支出信息,薪资信息,留言信息,报销信息等信息的管理。 通过纺织品企业财务管理系统对相关信息的处理,让信息处理变的更加的系统,更加的规范,这是一个必然的结果。已经处理好的信息,不管是用来查找,还是分析,在效率上都会成倍的提高,让计算机变得更加符合生产需要,变成人们不可缺少的一种信息处理工具,实现了绿色办公,节省社会资源,为环境保护也做了力所能及的贡献。 关键字:纺织品企业财务管理系统,薪资信息,报销信息;SpringBoot
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值