一、主要解决的使用场景

1、使用Glide加载图片时,我们往往需要设置加载中和加载失败的图片,app中不同的页面的显示的图片可能是圆形,也可能是圆角矩形图,Glide设置placeholder和error的图片并不能根据RequestOptions设置的参数显示,就需要设置多张placeholder和error的图片。这个库可以把加载中、加载失败、加载成功的图片统一设置为圆形或圆角矩形,因此会减少设置多个样式图片

2、有很多图片都有圆形背景边框或者圆角矩形边框,我们往往需要写很多个shape的xml文件。这个库可以设置圆形或圆角矩形边框,支持渐变颜色,满足绝大多数使用场景,因此可减少创建shape的xml文件个数

        3、有些图片太长时需要裁剪前半部分,这个库新增支持四种显示模式

https://github.com/FlyJingFish/ShapeImageView

二、支持功能

1、支持圆形或圆角矩形图片,不限图片设置方式,完美兼容所有的图片加载库

2,支持渐变色圆角框或圆形框

3,圆角框 支持四个角独立设置角度值,圆角图像 同样支持四个角独立设置角度值

4,新增支持startCrop、endCrop、autoStartCenterCrop、autoEndCenterCrop四种显示模式

5,autoStartCenterCrop和autoEndCenterCrop显示模式可通过设置autoCrop_height_width_ratio之后,自动在startCrop和centerCrop(endCrop和centerCrop)之间切换

三、使用说明

<com.flyjingfish.shapeimageviewlib.ShapeImageViewandroid:id="@+id/iv_centerCrop"android:layout_width="110dp"android:layout_height="110dp"android:layout_marginStart="10dp"android:padding="10dp"app:shape="rectangle"app:shape_border="rectangle"app:shape_border_width="3dp"app:shape_border_angle="45"app:shape_left_top_radius="8dp"app:shape_right_top_radius="12dp"app:shape_right_bottom_radius="16dp"app:shape_left_bottom_radius="20dp"app:shape_border_left_top_radius="10dp"app:shape_border_right_top_radius="15dp"app:shape_border_right_bottom_radius="20dp"app:shape_border_left_bottom_radius="25dp"app:shape_border_gradient="true"app:shape_border_startColor="@color/purple_200"app:shape_border_endColor="@color/teal_700"android:scaleType="centerCrop" />

更多使用说明看Github:

https://github.com/FlyJingFish/ShapeImageView

如果你项目中还需要点击小图查看大图的功能,可以直接使用我的另一个开源库,支持动画放大效果,其内置了ShapeImageView,Github地址如下,欢迎Star~~~

https://github.com/FlyJingFish/OpenImage

[Android开发]不操作Bitmap实现圆角ImageView、圆形ImageView,支持添加背景圆形或圆角矩形边框、边框支持渐变色相关推荐

  1. Android通知怎么实现?Android开发如何操作相机和相册?

    Android通知怎么实现?Android开发如何操作相机和相册? 前言 八.Android通知怎么实现?Android开发如何操作相机和相册? 8.1 通知介绍 8.2 通知的基本用法 8.3 An ...

  2. Android开发 ---如何操作资源目录中的资源文件2

    Android开发 ---如何操作资源目录中的资源文件2 一.颜色资源管理 效果图: 描述: 1.改变字体的背景颜色 2.改变字体颜色 3.改变按钮颜色 4.图像颜色切换 操作描述: 点击(1)中的颜 ...

  3. Android开发--蓝牙操作

    首先,由于模拟器上没有蓝牙装置,所以我们需要一个含有蓝牙装置的Android系统 其次,要操作设备上的蓝牙装置,需要在AndroidManifest中声明两个权限: <uses-permissi ...

  4. Android开发:操作UI线程4种方法

    我们经常会在后台线程中去做一些耗时的操作,比如去网络取数据.但是当数据取回来,需要显示到页面上的时候,会遇到一些小麻烦,因为我们都知道,android的UI页面是不允许在其他线程直接操作的.下面总结4 ...

  5. Android开发 ---多线程操作:Handler对象,消息队列,异步任务下载

    效果图: 1.activity_main.xml 描述:定义了六个按钮 <?xml version="1.0" encoding="utf-8"?> ...

  6. Android开发蓝牙操作

    一.打开蓝牙权限 操作蓝牙之前必须先要注册蓝牙权限.在AndroidManifest.xml文件中注册权限: <uses-permission android:name="androi ...

  7. Android开发--Http操作介绍(二)

    通常与服务器建立连接有两种方法,Get和Post方法,下面就对这两个方法进行介绍. 无论是使用HttpGet,还是使用HttpPost,都必须通过如下3步来访问HTTP资源. 1.创建HttpGet或 ...

  8. Android开发--Http操作介绍(一)

    什么是HTTP? 1.超文本传输协议是互联网上应用最为广泛的一种网络协议 2.HTTP是一个客户端和服务器端请求和应答的标准,客户端是终端用户,服务器端是网站 3.HTTP是客户端浏览器或其他应用程序 ...

  9. Android开发相关操作

    命令行启动DDMS工具,前提是有这个工具 ~/rustsoftware/adt-bundle-linux-x86_64-20140702/sdk/tools$ ./ddms 查看机器内存情况: adb ...

最新文章

  1. element 使用阿里图标变形了_web前端大厂面试题(阿里云笔试篇)
  2. TDSQL“相似查询工具MSQL+”入选VLDB论文
  3. matlab fspeical,matlab的special函数用法
  4. Spring保存文件到MongoDB之GridFS支持
  5. 对刺客历史的一种颠覆:说说《最后的刺客》
  6. 最好的FLV视频下载器 维棠 (支持优酷视频下载、土豆视频下载等)
  7. Server Develop (三) 多进程实现C/S
  8. sublime_text快捷键
  9. CodeFileBaseClass 属性
  10. 为什么大部分的C/C++码农都成不了高级工程师?真实原因是缺少核心能力!
  11. java springmvc注解详解_springMVC注解开发详解(转)
  12. Codeforces Round #493 (Div. 2):D. Roman Digits
  13. 不在更改国内网络账号的ID了
  14. Safari兼容IE
  15. Cmake :创建vs的makefile工程(1)
  16. 多媒体开发之---开源库ffmeg的log之子解析
  17. 瑞郎走弱有助于瑞士国家银行MogaFX外汇储备增加
  18. mongodb用户权限修改,删除以及robomongo显示问题
  19. 【Pandas总结】第六节 Pandas 添加列
  20. 一秒录音转文字,一键同声翻译,这两款软件简直无敌!

热门文章

  1. GDUT_排位赛题解报告_第2场_Fence Planning
  2. 【计算机组成原理】 中央处理器
  3. 视频监控系统中的流媒体服务器,视频监控系统中的流媒体服务器、直写和全切换三种取流架构方案...
  4. 【观察】赋能中小企业驶入成长“快车道”,华为云云商店背后的三重新价值...
  5. CPU的基本工作原理
  6. html编写中h1标题行左,英语编写台词 颜色 表演
  7. 手机拨号盘的智能搜索
  8. AidLux“人像抠图”案例源码详解 (Python)
  9. php 怎么执行unoconv,php编辑word内容通过unoconv调用LibreOffice输出pdf打印
  10. 社交大革命,不可遏止的互联网春天