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文件上传服务器...
}
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。