头像的上传02
2016-02-23 10:06
369 查看
调用系统相机和相册获取图片后上传到服务器,在从服务器获取展示到本地,用xutils下载,但是从相机拍照上传到服务器的图片下载下来后变成圆形时,会被压扁,从相册上传的下载就没问题。 解决方法:1. xutils下载图片
BitmapUtils bitmapUtils = new BitmapUtils(Activity_SettingUpLoadavtr_show.this); bitmapUtils.display(image_avtr, avatar, new BitmapLoadCallBack<ImageView>() { @Override public void onLoadCompleted(ImageView arg0, String arg1, Bitmap arg2, BitmapDisplayConfig arg3, BitmapLoadFrom arg4) { //将图片变成圆形图片 Bitmap roundBitmap = Cicle.toRoundBitmap02(arg2); //将图片进行放大处理 Bitmap bitmapToMax = Cicle.bitmapToMax02(roundBitmap); //展示图片 Drawable drawable=new BitmapDrawable(bitmapToMax); arg0.setBackgroundDrawable(drawable); }
2. 现在后先将为长方形的图片进行放大到固定尺寸的处理,变成正方形,不然变成的圆形可能会变扁。然后运用Xfermode 做成圆形图片,在根据大小进行缩放或放大。 Xfermode进行圆形图片的处理
public static Bitmap toRoundBitmap02(Bitmap bitmap){ //将长方形进行放大到固定尺寸 Bitmap bitmapToMax = bitmapToMax(bitmap, 200, 200); float radio=250; Log.e("cicle", bitmapToMax.getWidth()+"----"+bitmapToMax.getHeight()); Bitmap bitmapOut=Bitmap.createBitmap(bitmapToMax.getWidth(), bitmapToMax.getHeight(), Bitmap.Config.ARGB_8888); //新的图 Canvas canvas=new Canvas(bitmapOut); Paint paint=new Paint(Paint.ANTI_ALIAS_FLAG); if(bitmapToMax.getWidth()>bitmapToMax.getHeight()){ radio=bitmapToMax.getHeight()/2-5; }else{ radio=bitmapToMax.getWidth()/2-5; } Log.e("cicle", "radio----"+radio); canvas.drawCircle(bitmapToMax.getWidth()/2, bitmapToMax.getHeight()/2, radio, paint);//先花的为上面的dst paint.setXfermode(new PorterDuffXfermode(Mode.SRC_IN)); canvas.drawBitmap(bitmapToMax, 0,0, paint); //src return bitmapOut; }
3 放大
public static Bitmap bitmapToMax02(Bitmap bitmap){ Matrix matrix = new Matrix(); matrix.postScale(4.5f,4.5f); //长和宽放大缩小的比例 Bitmap resizeBmp = Bitmap.createBitmap(bitmap,0,0,bitmap.getWidth(),bitmap.getHeight(),matrix,true); return resizeBmp; }
4 注意imageview展示时大小设置为包裹内容
相关文章推荐
- Spring注解
- Android 变更后导致R.JAVA文件找不到解决
- java中Hashtable和HashMap的区别分析
- fatal error: openssl/ssl.h 以及 libssl-dev 安装失败 解决方案
- C#实现SQL SERVER数据库备份的两种方法比较
- BZOJ 3166: [Heoi2013]Alo|可持久化Trie树
- Codeforces edu 8 D. Magic Numbers 数位dp
- nuget自动打包及发布nuget自有服务器
- 神通广大的CSS3选择器
- 启动出错:roslaunch turtlebot_gazebo amcl_demo.launch map_file:=/tmp/my_map.yaml
- Eclipse中导入外部jar包(自用)
- 如何获取手机中连接的wifi名称?
- VC2010环境OLE导出Excel的方法及步骤
- Eclipae常用快捷键 Java代码
- 网络数据如何传输?
- spark分片个数的确定及Spark内存错误(GC error)的迂回解决方式
- RFC文件
- BitMap 内存使用优化
- Android RxJava 新技术详解
- 【bzoj1266】[AHOI2006]上学路线route 最小割+floyd