实际开发中,很多项目中需要用到圆形图片,例如,项目中个人资料的用户头像。加载图片的框架有很多,我们就简单的说几个,及其他们的优缺点。
首先是Fresco,它的优点是其他几个框架没有的,或者说是其他几个框架的短板。
优点:
1.图片存储在安卓系统的匿名共享内存,而不是虚拟机的堆内存中,图片的中间缓存数据也存放在本地堆内存。所以程序有更多的内存使用,不会因为图片的加载而导致OOM(OOM就是内存溢出,即Out Of Memory。也就是说内存占有量超过了VM所分配的最大。),同时也减少垃圾回收器频繁的回收Bitmap导致界面的卡顿,性能更高
2.渐进式加载JPEG图片,支持图片从模糊到清晰的加载
3.图片可以以任意的中心点显示在ImageView中,而不仅仅是图片的中心。
4.JPEG图片改变大小也是在native进行的,不是在虚拟机的堆内存,同样减少OOM。
5.很好的支持GIF图片的显示
缺点:
1.框架较大,影响apk体积
2.使用较繁琐
ImageLoader
比较老的框架,稳定,加载速度适中,缺点在于不能加载Gif图片,使用稍微繁琐,并且缓存机制没有和http的缓存机制很好的结合,完全是子的一套缓存机制。
PIcasso
优点:使用方便,一行代码完成加载图片和显示出来,框架体积小
缺点:不支持GIf图片,并且他可能是想让服务器去处理图片的缩放,他的缓存图片是未缩放的,并且是默认使用ARGB_8888格式缓存图片的,缓存体积大
这就是我们今天的主角 Glide
glide可以说是Picasso的升级版,有picass的优点,并且支持gif图片的加载和显示,图片缓存也会自动的缩放,默认使用RGB-565格式缓存图片,是picasso缓存体积的一半。
今天我们就用glide实现加载圆形图片和
先看一个效果图

首先先加载glide的jia包

compile 'com.github.bumptech.glide:glide:3.7.0'

当然有网络请求,你一定不能忘记加网络权限

<uses-permission android:name="android.permission.INTERNET" />

自定义一个glide的圆形转换类

public class GlideCircleTransform extends BitmapTransformation{public GlideCircleTransform(Context context) {super(context);}@Override protected Bitmap transform(BitmapPool pool, Bitmap toTransform, int outWidth, int outHeight) {return circleCrop(pool, toTransform);}private static Bitmap circleCrop(BitmapPool pool, Bitmap source) {if (source == null) return null;int size = Math.min(source.getWidth(), source.getHeight());int x = (source.getWidth() - size) / 2;int y = (source.getHeight() - size) / 2;Bitmap squared = Bitmap.createBitmap(source, x, y, size, size);Bitmap result = pool.get(size, size, Bitmap.Config.ARGB_8888);if (result == null) {result = Bitmap.createBitmap(size, size, Bitmap.Config.ARGB_8888);}Canvas canvas = new Canvas(result);Paint paint = new Paint();paint.setShader(new BitmapShader(squared, BitmapShader.TileMode.CLAMP, BitmapShader.TileMode.CLAMP));paint.setAntiAlias(true);float r = size / 2f;canvas.drawCircle(r, r, r, paint);return result;}@Override public String getId() {return getClass().getName();}
}

xml文件布局

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"android:background="#f00"android:orientation="vertical"><ImageView
        android:id="@+id/ima"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginTop="30dp" /><ImageView
        android:id="@+id/tv"android:layout_width="60dp"android:layout_height="60dp"/>
</LinearLayout>

加载时候就只需要new类就可以

public class MainActivity extends AppCompatActivity{@Overrideprotected void onCreate(Bundle savedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);final ImageView ima = (ImageView) findViewById(R.id.ima);final ImageView tv = (ImageView) findViewById(R.id.tv);//这是加载圆形图片的Glide.with(this).load("http://image.tianjimedia.com/uploadImages/2013/235/56Y682R36Y6X.jpg").transform(new GlideCircleTransform(this)).into(ima);//这是加载正常图片的Glide.with(this).load("http://pic33.nipic.com/20130916/3420027_192919547000_2.jpg").into(tv);}
}

写到这里,技术就已经写完了。剩下来的时间就到了博主讲段子的时间了。今天我们开波车。

我们要说的还是我那个朋友,丑康的事。丑康,你别看他丑,但是有大智慧,也有大毅力的一个人,为什么这么说,因为他喝饮料都可以把饮料钱从老板手里拿回来,他每次去小卖铺买冰红茶,买了喝一半,然后尿一半回去,然后回店里告诉老板,你卖的饮料过期了,都变味了,你不信你自己喝下,老板一喝,不对劲,只能给他退钱,自从他喝了一款叫做营养快线的饮料后,他的身体一天不如一天了。
可能你会说,为什么要一直突出丑康的丑,那是因为

博主很帅!!!


Gilde加载圆形图片相关推荐

  1. Android Glide加载圆形图片、圆角图片,部分圆角图片的使用方法

    Android Glide加载圆形图片.圆角图片,部分圆角图片的使用方法 前言 Gilde圆形图片/头像 Gilde普通圆角图片即四个角都是圆角 Gilde对指定角设置圆角 前言 通过本文,您可以实现 ...

  2. Android Glide 加载圆形图片(绝对实用)

    1.导入依赖 implementation 'com.github.bumptech.glide:glide:4.6.1' 2.用Glide加载圆形图片 Glide.with(context).loa ...

  3. Picasso加载圆形图片和圆角图片

    (1)加载圆形图片 https://gist.github.com/julianshen/5829333 改进版支持Palltte https://gist.github.com/dtygel/71b ...

  4. android glide圆形图片,Glide原生方法加载圆形图片

    项目中需要用圆形图片,我们知道,Android原生是没有好用的圆形图片的,何况还要网络加载什么的.今天找了下Glide加载圆形图片的方法,基本都是这种,说得倒是很明白的,但是我自己加载时候没有找到相应 ...

  5. Glide加载圆形图片和自定义圆角图片和对指定的角加载圆角

    先上效果图: 因注释很细,就不一一解释说明了! 1.Glide加载圆形图片: 自定义GlideCircleTransUtils继承BitmapTransformation,重写transform()方 ...

  6. Glide加载圆形图片带白色边框

    1.导入Glide依赖 compile 'com.github.bumptech.glide:glide:4.0.0-RC1' 2.创建一个类 继承BitmapTransformation /*** ...

  7. Android Glide加载圆形图片,设置圆形边框

    Glide加载图片,Glide可以很方便的实现圆形加载并且也还可以设置变色边框. 关于Glide的加载在这里不详细说了,主要说一下自定义BitmapTransformation来实现圆形图片加载 st ...

  8. Glide加载圆形图片并且带白色边框(绝对实用)

    导入依赖:我不知道其他版本的能不能用 api 'com.github.bumptech.glide:glide:4.6.1' 1.创建一个类 /*** 加载圆形头像带白色边框*/ public cla ...

  9. ImageLoader加载圆形图片

    ImageLoader这个图片加载器是我经常使用额一个图片加载器(https://github.com/nostra13/Android-Universal-Image-Loader) 这个图片加载器 ...

最新文章

  1. 皮一皮:碰上一个说倒装句的直男怎么办...
  2. 一分钟理解softmax函数(超简单)
  3. 2019 amazingdotnet 公众号回顾
  4. PostgreSQL实现时间按月,日,小时分组查询
  5. Fiddler之文件代理
  6. Android获取Java类名/文件名/方法名/行号
  7. 数字信号处理——CFAR检测器设计(1)
  8. JUCE学习笔记05-音频输出基础(白噪)
  9. JAVA代码实现MD5加密算法
  10. NLTK09《Python自然语言处理》code08 分析句子结构
  11. java并发编程简单分析
  12. FreeRTOS的学习(二)——任务优先级问题
  13. 紫光扫描仪ocr_清华紫光扫描仪的安装教程及使用方法
  14. 浏览器缓存之http缓存和service worker
  15. php get defined,php中get_defined_constants函数用法实例分析
  16. 关于meta标签中的http-equiv属性使用介绍
  17. LeetCode 6009. 使两字符串互为字母异位词的最少步骤数
  18. ActiveSync45特性
  19. Spring中的切入点表达式写法
  20. java资源使用效率较高,Java 进程资源使用率较高问题定位

热门文章

  1. 仿微信输入支付密码的弹窗
  2. 配置Linux+Nginx+php环境搭建
  3. android文字和图片混排
  4. Windows下Nginx的启动、停止等命令
  5. Redis穿透、击穿、雪崩介绍
  6. python 抽象语法树_抽象语法树(Abstract Syntax Tree)
  7. 如何联系心仪的导师(保研、考研)
  8. Andorid适配器应用
  9. 前端CSS颜色代码大全
  10. 博途v13打开软件时显示连接不到服务器,博图软件 搜索在线设备 提示“到通讯服务器连接已中止”...