android头像相册/拍照选取,裁剪及上传综合案例
2014-01-04 15:03
746 查看
在android项目中,很多情况下上传头像的需求,像qq,新浪微博,微信,飞信等很多应用都有这样的功能。
之前我写过的两篇文章:andorid下从相册选取/拍照选取一张相片并剪切和android下Bitmap和base64之间的转换把他们综合起来,就可以来实现头像从相册/拍照选取,后裁剪再上传的功能
完整源码下载
这里我只贴出上传图片的方法代码,至于怎么获取到获取到图片,请看andorid下从相册选取/拍照选取一张相片并剪切
从上边代码可以看出,又用到我钟爱的android-async-http 安卓异步http框架来访问网络
这样一操作,图片就会按Base64编码格式传送到服务器,而服务器端的代码也是非常简单的
这样图片就成功的保存带E盘下
之前我写过的两篇文章:andorid下从相册选取/拍照选取一张相片并剪切和android下Bitmap和base64之间的转换把他们综合起来,就可以来实现头像从相册/拍照选取,后裁剪再上传的功能
完整源码下载
这里我只贴出上传图片的方法代码,至于怎么获取到获取到图片,请看andorid下从相册选取/拍照选取一张相片并剪切
/* * 上传图片 */ public void upload(View view) { try { ByteArrayOutputStream out = new ByteArrayOutputStream(); bitmap.compress(Bitmap.CompressFormat.JPEG, 100, out); out.flush(); out.close(); byte[] buffer = out.toByteArray(); byte[] encode = Base64.encode(buffer, Base64.DEFAULT); String photo = new String(encode); RequestParams params = new RequestParams(); params.put("photo", photo); String url = "http://110.65.99.66:8080/jerry/UploadImgServlet"; AsyncHttpClient client = new AsyncHttpClient(); client.post(url, params, new AsyncHttpResponseHandler() { @Override public void onSuccess(int statusCode, Header[] headers, byte[] responseBody) { try { if (statusCode == 200) { Toast.makeText(MainActivity.this, "头像上传成功!", 0) .show(); } else { Toast.makeText(MainActivity.this, "网络访问异常,错误码:" + statusCode, 0).show(); } } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } @Override public void onFailure(int statusCode, Header[] headers, byte[] responseBody, Throwable error) { Toast.makeText(MainActivity.this, "网络访问异常,错误码 > " + statusCode, 0).show(); } }); } catch (Exception e) { e.printStackTrace(); } }
从上边代码可以看出,又用到我钟爱的android-async-http 安卓异步http框架来访问网络
这样一操作,图片就会按Base64编码格式传送到服务器,而服务器端的代码也是非常简单的
package com.jerry.servlet; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import com.sun.org.apache.xml.internal.security.exceptions.Base64DecodingException; import com.sun.org.apache.xml.internal.security.utils.Base64; public class UploadImgServlet extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { request.setCharacterEncoding("utf-8"); response.setCharacterEncoding("utf-8"); response.setContentType("text/html"); String photo = request.getParameter("photo"); try { // 对base64数据进行解码 byte[] decode = Base64.decode(photo); File file = new File("e:\\decode.jpg"); if(!file.exists()) { file.createNewFile(); } FileOutputStream out = new FileOutputStream(file); out.write(decode); out.flush(); out.close(); } catch (Base64DecodingException e) { // TODO Auto-generated catch block e.printStackTrace(); } } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { this.doGet(request, response); } }
这样图片就成功的保存带E盘下
相关文章推荐
- android头像相册/拍照选取,裁剪及上传综合案例
- Android开发之头像上传(包含拍照,从相册选择图片,裁剪等)
- Android 用MultiImageSelector实现上传头像的拍照跟相册
- Android开发:仿微信和QQ空间发说说相册读取、拍照、图片裁剪和图片上传服务器等功能的实现
- android从相册选取与拍照上传最终解决版
- Android设置头像,手机拍照或从本地相册选取图片作为头像
- android头像选择(拍照,相册,裁剪)
- Android从相册以及拍照选取照片,然后裁剪保存遇到的问题
- 兼容SDK4.4(api19)拍照、相册选择图片裁剪压缩上传头像
- Android 头像(拍照,相册)选择后裁剪功能
- Android 设置用户头像 -》拍照/相册选择+裁剪 实现
- Android设置头像,手机拍照或从本地相册选取图片作为头像
- Android拍照或从相册选取以及裁剪
- 黑马程序员--------------------------------Android 拍照、相册选图、裁剪上传
- android打开相册选取图片或打开相机拍照并进行裁剪
- 个人界面 < 头像 > 图片选择(相册,拍照)--如何调用系统的相册,裁剪并且上传
- Android通过手机拍照或从本地相册选取图片设置头像
- Android上传头像代码,相机,相册,裁剪
- H5调用手机的摄像头拍照上传以及手机相册选取照片但不支持Android的分析
- Android之拍照和相册选取图片并裁剪得到路径