Android从相册选择图片剪切和上传
本文实例为大家分享了Android剪切和上传图片的具体代码,供大家参考,具体内容如下
1、从Android系统相册选择一张图片getImageFromAlbum():
/** *从图库获得照片 */ protectedvoidgetImageFromAlbum(){ isImgs=true; //MainApplication.changeSettingStateus=true; Intentintent=newIntent(Intent.ACTION_PICK); intent.setType("image/*");//相片类型 intent.putExtra("aspectX",1); intent.putExtra("aspectY",1); intent.putExtra("outputX",360); intent.putExtra("outputY",360); intent.putExtra("scale",true); intent.putExtra("return-data",true); //intent.putExtra("outputFormat", //Bitmap.CompressFormat.JPEG.toString()); intent.putExtra("noFaceDetection",true);//nofacedetection startActivityForResult(intent,1); }
2、在onActivityResult()方法中:
@Override protectedvoidonActivityResult(intrequestCode,intresultCode,Intentdata){ //TODOAuto-generatedmethodstub super.onActivityResult(requestCode,resultCode,data); if(resultCode==RESULT_OK){ Stringtext; switch(requestCode){ case1: UriselectedImage=data.getData(); CutPic(selectedImage); break; case3://对图片进行剪切 if(data!=null){ Bitmapbitmap=data.getParcelableExtra("data"); temps=zoomImage(bitmap,360,360); //上传图片 uploadImg(temps); } break; default: break; } } }
3、图片剪切CutPic(selectedImage);
/** *将图片裁剪到指定大小 * *@paramuri *@paramsize *@paramflag */ publicvoidCutPic(Uriuri){ Intentintent=newIntent("com.android.camera.action.CROP"); intent.setDataAndType(uri,"image/*"); intent.putExtra("crop",true);//设置Intent中的view是可以裁剪的 //设置宽高比 intent.putExtra("aspectX",1); intent.putExtra("aspectY",1); //设置裁剪图片的宽高 intent.putExtra("outputX",360); intent.putExtra("outputY",360); intent.putExtra("outputFormat","JPEG");//图片格式 //设置是否返回数据 intent.putExtra("return-data",true); //开启一个带有返回值的Activity,请求码为3 startActivityForResult(intent,3); }
4、图片压缩剪切zoomImage(bitmap,360,360);
/*** *图片的缩放方法 * *@parambgimage *:源图片资源 *@paramnewWidth *:缩放后宽度 *@paramnewHeight *:缩放后高度 *@return */ publicstaticBitmapzoomImage(Bitmapbgimage,doublenewWidth, doublenewHeight){ //获取这个图片的宽和高 floatwidth=bgimage.getWidth(); floatheight=bgimage.getHeight(); //创建操作图片用的matrix对象 Matrixmatrix=newMatrix(); //计算宽高缩放率 floatscaleWidth=((float)newWidth)/width; floatscaleHeight=((float)newHeight)/height; //缩放图片动作 matrix.postScale(scaleWidth,scaleHeight); Bitmapbitmap=Bitmap.createBitmap(bgimage,0,0,(int)width, (int)height,matrix,true); returnbitmap; }
5、上传图片文件至服务器uploadImg(bitMaps);
/** *上传图片 * *@parambitP */ privatevoiduploadImg(finalBitmapbitP){ //将Bitmap转换成字符串 Stringstring=null; ByteArrayOutputStreambStream=newByteArrayOutputStream(); bitP.compress(CompressFormat.JPEG,100,bStream); byte[]bytes=bStream.toByteArray(); string=Base64.encodeToString(bytes,Base64.DEFAULT); try{ bStream.close(); }catch(IOExceptione1){ //TODOAuto-generatedcatchblock e1.printStackTrace(); } //string文件上传服务器... }
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。