调用相册拍照裁剪后返回

//相册
		tv_editIcon_xiangce.setOnClickListener(new OnClickListener() {
			
			@Override
			public void onClick(View v) {
				// TODO Auto-generated method stub
				Intent intent = new Intent("android.intent.action.PICK");
                intent.setDataAndType(MediaStore.Images.Media.INTERNAL_CONTENT_URI, "image/*");
                intent.putExtra("output", Uri.fromFile(sdcardTempFile));
                intent.putExtra("crop", "true");
                intent.putExtra("aspectX", 3);// 裁剪框比例
                intent.putExtra("aspectY", 4);
                intent.putExtra("outputX", 120);// 输出图片大小
                intent.putExtra("outputY", 160);
                startActivityForResult(intent, 100);
				
			}
		});
	}


//拍照
		tv_editIcon_paizhao.setOnClickListener(new OnClickListener() {
			
			@Override
			public void onClick(View v) {
				// TODO Auto-generated method stub
				
				Intent cameraintent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
                
				// 指定调用相机拍照后照片的储存路径
                cameraintent.putExtra(MediaStore.EXTRA_OUTPUT,Uri.fromFile(tempFile));
                startActivityForResult(cameraintent, 101);
				
			}
		});




在调用返回后的处理:

    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
            if (requestCode == 100) {
//            		Drawable draw = Drawable.createFromPath(sdcardTempFile.getAbsolutePath());
                    Bitmap bmp = BitmapFactory.decodeFile(sdcardTempFile.getAbsolutePath());
//                    imageView.setImageBitmap(bmp);
                    
                    iv_editIcon_icon.setBackgroundDrawable(new BitmapDrawable(bmp));
                    currentIcon = sdcardTempFile.getAbsolutePath();
            }else if(requestCode == 101){
//				选择拍照
           	startPhotoZoom(Uri.fromFile(tempFile));
            }else if(requestCode == 102){
           	 if (data != null)
           		 // setPicToView(data);
           		 sentPicToNext(data);
           	 
            }
    }
    
    private void startPhotoZoom(Uri uri) {
        Intent intent = new Intent("com.android.camera.action.CROP");
        intent.setDataAndType(uri, "image/*");
        // crop为true是设置在开启的intent中设置显示的view可以剪裁
        intent.putExtra("crop", "true");

        // aspectX aspectY 是宽高的比例
        intent.putExtra("aspectX", 3);
        intent.putExtra("aspectY", 4);

        // outputX,outputY 是剪裁图片的宽高
        intent.putExtra("outputX", 60);
        intent.putExtra("outputY", 80);
        intent.putExtra("return-data", true);
        intent.putExtra("noFaceDetection", true);
        startActivityForResult(intent, 102);
     }
    
 // 将进行剪裁后的图片传递到下一个界面上
    private void sentPicToNext(Intent picdata) {
        Bundle bundle = picdata.getExtras();
        if (bundle != null) {
            Bitmap photo = bundle.getParcelable("data");
            if (photo==null) {
            }else {
            	iv_editIcon_icon.setBackgroundDrawable(new BitmapDrawable(photo));
            	
            	File myCaptureFile = new File(Environment.getExternalStorageDirectory(),fileName);
            	try {
            		saveMyBitmap(photo,myCaptureFile);
					currentIcon = myCaptureFile.getAbsolutePath();
				} catch (Exception e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
            }
        }
    }
    //保存图片到本地
    public void saveMyBitmap(Bitmap bm,File file) throws IOException {
    	file.createNewFile();
        FileOutputStream fOut = null;
        try {
                fOut = new FileOutputStream(file);
        } catch (FileNotFoundException e) {
                e.printStackTrace();
        }
        bm.compress(Bitmap.CompressFormat.JPEG, 100, fOut);
        try {
                fOut.flush();
        } catch (IOException e) {
                e.printStackTrace();
        }
        try {
                fOut.close();
        } catch (IOException e) {
                e.printStackTrace();
        }
    }


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
单片微型计算机(MCU)经过多年的发展,在性能上有很大的进步,在型号上发展到上千种类,已经广泛应用于人类社会生活的各个领域。单片机课程已经成为高校计算机、自动化、测控以及电子信息工程等专业的重要课程。该课程是一门理论性和实践性都很强的课程,在实际教学中,应将理论教学和实验教学紧密结合。学生在掌握理论知识之余,必须通过编写程序、设计硬件电路、仿真、调试这一系列的实验过程,才能更好地掌握单片机的结构原理和应用技能。随着单片机及其接口技术的飞速发展,目前市场上供应的编程仿真实验资源并不能完全满足高校单片机课程教与学的需求,构建低成本、技术先进、源码公开的单片机编程仿真实验系统,对我国单片机课程的教学和单片机领域人才的培养具有重要的现实意义。 本论文结合目前教学中对单片机编程仿真实验系统的实际需求,采用模块化结构设计思想,精心设计和开发了单片机编程仿真实验系统。该单片机编程仿真实验系统由PC机端单片机编程控制软件和单片机编程仿真实验板两部分组成。PC机端的单片机编程控制软件可以自动检测到连接到单片机编程仿真实验板上的单片机,控制单片机编程器擦除、写入、读出、校验目标单片机ROM中的程序,以十六进制文件(.HEX文件)格式显示在控制界面内;单片机仿真实验系统能够把写入单片机的程序实时地运行,并呈现实际运行效果。单片机编程控制软件和单片机仿真实验板组成一个完整的单片机编程仿真实验系统。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值