版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
【移动应用开发技术】拍照剪切and获取sd卡中的图片
packagecom.truekey.alarmclock.user;importjava.io.File;importandroid.app.Activity;importandroid.app.Dialog;importandroid.content.Context;importandroid.content.Intent;importandroid.content.SharedPreferences;importandroid.graphics.Bitmap;importandroid.graphics.drawable.BitmapDrawable;importandroid.graphics.drawable.Drawable;import.Uri;importandroid.os.Bundle;importandroid.os.Environment;importvider.MediaStore;importandroid.view.Gravity;importandroid.view.LayoutInflater;importandroid.view.View;importandroid.view.View.OnClickListener;importandroid.view.Window;importandroid.widget.Button;importandroid.widget.ImageView;importandroid.widget.RelativeLayout.LayoutParams;importandroid.widget.TextView;importcom.truekey.alarmclock.R;publicclassUserInfoActivityextendsActivity{ImageViewuser_header_p_w_picpath;DialogpictureDialog;ViewpictureView;ButtontakePictureBtn,allPicture,cancle;privatestaticfinalintSCALE=15;//照片缩小比例StringimgBase64;StringfileName=null;ImageViewiv_title_left,iv_title_right;@OverrideprotectedvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.user_info_layout);iv_title_right=(ImageView)findViewById(R.id.iv_title_right);iv_title_left=(ImageView)findViewById(R.id.iv_title_left);user_header_p_w_picpath=(ImageView)findViewById(R.id.user_header_p_w_picpath);TextViewnicheng_tv=(TextView)findViewById(R.id.nicheng_tv);pictureDialog();}publicvoidonClick(Viewv){switch(v.getId()){caseR.id.user_header_p_w_picpath:pictureDialog.show();pictureDialog.getWindow().setLayout(LayoutParams.MATCH_PARENT,LayoutParams.WRAP_CONTENT);break;caseR.id.iv_title_right:finish();overridePendingTransition(R.anim.home_main_last_twoactivity_out,R.anim.ptr_slide_out_to_bottom);break;caseR.id.iv_title_left:finish();overridePendingTransition(R.anim.home_main_last_twoactivity_in,R.anim.ptr_slide_out_to_bottom);default:break;}}//拍照布局publicvoidpictureDialog(){pictureView=LayoutInflater.from(UserInfoActivity.this).inflate(R.layout.takepicture_dialog,null);cancle=(Button)pictureView.findViewById(R.id.cancle);takePictureBtn=(Button)pictureView.findViewById(R.id.take_picture);takePictureBtn.setOnClickListener(newButtonOnClickListener());//所有的图片选取。。allPicture=(Button)pictureView.findViewById(R.id.all_picture);//所有图片allPicture.setOnClickListener(newOnClickListener(){@OverridepublicvoidonClick(Viewv){Intentintent=newIntent(Intent.ACTION_PICK,null);intent.setDataAndType(MediaStore.Images.Media.EXTERNAL_CONTENT_URI,"p_w_picpath/*");startActivityForResult(intent,1);}});//取消cancle.setOnClickListener(newOnClickListener(){@OverridepublicvoidonClick(Viewv){pictureDialog.dismiss();}});if(pictureView!=null){/*自定义对话框*/pictureDialog=newDialog(this,R.style.mydialog);pictureDialog.setContentView(pictureView);pictureDialog.setCancelable(false);Windowwindow=pictureDialog.getWindow();window.setWindowAnimations(R.style.AlterDialogAnima);window.setGravity(Gravity.BOTTOM);}}publicfinalstaticintCAMERA_RESULT=8888;//拍照获取图片privateclassButtonOnClickListenerimplementsView.OnClickListener{@OverridepublicvoidonClick(Viewv){Intentintent=newIntent(MediaStore.ACTION_IMAGE_CAPTURE);//下面这句指定调用相机拍照后的照片存储的路径intent.putExtra(MediaStore.EXTRA_OUTPUT,Uri.fromFile(newFile(Environment.getExternalStorageDirectory(),"xiaoma.jpg")));startActivityForResult(intent,2);}}@OverrideprotectedvoidonActivityResult(intrequestCode,intresultCode,Intentdata){super.onActivityResult(requestCode,resultCode,data);if(resultCode==RESULT_OK){switch(requestCode){case1:startPhotoZoom(data.getData());break;//如果是调用相机拍照时case2:Filetemp=newFile(Environment.getExternalStorageDirectory()+"/xiaoma.jpg");startPhotoZoom(Uri.fromFile(temp));break;//取得裁剪后的图片case3:/***非空判断大家一定要验证,如果不验证的话,在剪裁之后如果发现不满意,要重新裁剪,丢弃*当前功能时,会报NullException,小马只在这个地方加下,大家可以根据不同情况在合适的地方做判断处理类似情况**/if(data!=null){setPicToView(data);}break;default:break;}}}/***裁剪图片方法实现**@paramuri*/publicvoidstartPhotoZoom(Uriuri){Intentintent=newIntent("com.android.camera.action.CROP");intent.setDataAndType(uri,"p_w_picpath/*");//下面这个crop=true是设置在开启的Intent中设置显示的VIEW可裁剪intent.putExtra("crop","true");//aspectXaspectY是宽高的比例intent.putExtra("aspectX",1);intent.putExtra("aspectY",1);//outputXoutputY是裁剪图片宽高intent.putExtra("outputX",150);intent.putExtra("outputY",150);intent.putExtra("return-data",true);startActivityForResult(intent,3);}/***保存裁剪之后的图片数据**@parampicdata*/privatevoidsetPicToView(Intentpicdata){Bundleextras=picdata.getExtras();if(extras!=null){Bitmapphoto=extras.getParcelable("data");Drawabledrawable=newBitmapDrawable(photo);pictureDialog.dismiss();//为防止原始图片过大导致内存溢出,这里先缩小原图显示,然后释放原始Bitmap占用的内存Bitmapchoosepicture=ImageTools.toRoundBitmap2(photo);//释放原始图片占用的内存,防止outofmemory异常发生photo.recycle();user_header_p_w_picpath.setImageBitmap(choosepicture);}}//用于保存图片publicvoidputSharedpreference(Stringtakepicture){SharedPreferencesshared=getSharedPreferences("temp",Context.MODE_PRIVATE);SharedPreferences.Editoredit=shared.edit();edit.putString("picture",takepicture);mit();}publicStringgetSh
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 制造业项目风险管理方案
- 橡胶沥青行业影响因素
- 食品工业园建设项目风险管理分析报告
- 2024届山东省滨州市部分学校高三下学期模拟预测历史试题
- (新人教版)七年级地理下册第八章第一节:中东
- (华师大)2.5有理数的大小比较分析
- 云南省曲靖市陆良县第八中学2024届高一下数学期末质量检测模拟试题含解析
- 云南省楚雄彝族自治州大姚第一中学2024届高一数学第二学期期末联考试题含解析
- 电子元器件制造行业技术趋势分析报告
- 2023-2024学年云南省蒙自一中数学高一下期末经典模拟试题含解析
- 2024年吉林省长春市中考一模英语试题
- 2024四川省成都市属事业单位招聘历年高频考题难、易错点模拟试题(共500题)附带答案详解
- 廊坊师范学院2024年第二批教师招聘招聘历年公开引进高层次人才和急需紧缺人才笔试参考题库(共500题)答案详解版
- 中职思政课实施方案及措施
- 2024江苏盐城港控股集团限公司招聘23人公开引进高层次人才和急需紧缺人才笔试参考题库(共500题)答案详解版
- 三级安全教育登记卡(三级试卷附答案)
- 静疗护士专科培训计划
- CRTSIII型板式无砟轨道专项施工施工方法及工艺要求
- 教学获奖论文范文参考关于教学获奖的优秀论文范文【10篇】
- 婴幼儿常见病防治试题及答案
- 中考物理母题题源系列 04 物体的平衡力的判断(含解析)(1).doc
评论
0/150
提交评论