文章源地址 : https://www.jianshu.com/p/9016ecf1d213
云盘地址:链接:https://pan.baidu.com/s/1YBU86spJNFd5hw774n5_zA
提取码:tkb7
Step 1. 添加JitPack仓库 在项目根目录下的 build.gradle
中添加仓库:
allprojects {
repositories {
...
maven { url "https://jitpack.io" }
}
}
Step 2. 添加项目依赖
dependencies {
implementation 'com.github.SheHuan:NiceImageView:1.0.5'
}
支持的属性、方法
属性名 | 含义 | 默认值 | 对应方法 |
---|---|---|---|
is_circle | 是否显示为圆形(默认为矩形) | false | isCircle() |
corner_top_left_radius | 左上角圆角半径 | 0dp | setCornerTopLeftRadius() |
corner_top_right_radius | 右上角圆角半径 | 0dp | setCornerTopRightRadius() |
corner_bottom_left_radius | 左下角圆角半径 | 0dp | setCornerBottomLeftRadius() |
corner_bottom_right_radius | 右下角圆角半径 | 0dp | setCornerBottomRightRadius() |
corner_radius | 统一设置四个角的圆角半径 | 0dp | setCornerRadius() |
border_width | 边框宽度 | 0dp | setBorderWidth() |
border_color | 边框颜色 | #ffffff | setBorderColor() |
inner_border_width | 相当于内层边框(is_circle为true时支持) | 0dp | setInnerBorderWidth() |
inner_border_color | 内边框颜色 | #ffffff | setInnerBorderColor() |
is_cover_src | border、inner_border是否覆盖图片内容 | false | isCoverSrc() |
mask_color | 图片上绘制的遮罩颜色 | 不设置颜色则不绘制 | setMaskColor() |
/*
*ADD:饱和相加,对图像饱和度进行相加,不常用
*CLEAR:清除图像
*DARKEN:变暗,较深的颜色覆盖较浅的颜色,若两者深浅程度相同则混合
*DST:只显示目标图像
*DST_ATOP:在源图像和目标图像相交的地方绘制【目标图像】,在不相交的地方绘制【源图像】,相交处的效果受到源图像和目标图像alpha的影响
*DST_IN:只在源图像和目标图像相交的地方绘制【目标图像】,绘制效果受到源图像对应地方透明度影响
*DST_OUT:只在源图像和目标图像不相交的地方绘制【目标图像】,在相交的地方根据源图像的alpha进行过滤,源图像完全不透明则完全过滤,完全透明则不过滤
*DST_OVER:将目标图像放在源图像上方
*LIGHTEN:变亮,与DARKEN相反,DARKEN和LIGHTEN生成的图像结果与Android对颜色值深浅的定义有关
*MULTIPLY:正片叠底,源图像素颜色值乘以目标图像素颜色值除以255得到混合后图像像素颜色值
*OVERLAY:叠加
*SCREEN:滤色,色调均和,保留两个图层中较白的部分,较暗的部分被遮盖
*SRC:只显示源图像
*SRC_ATOP:在源图像和目标图像相交的地方绘制【源图像】,在不相交的地方绘制【目标图像】,相交处的效果受到源图像和目标图像alpha的影响
*SRC_IN:只在源图像和目标图像相交的地方绘制【源图像】
*SRC_OUT:只在源图像和目标图像不相交的地方绘制【源图像】,相交的地方根据目标图像的对应地方的alpha进行过滤,目标图像完全不透明则完全过滤,完全透明则不过滤
*SRC_OVER:将源图像放在目标图像上方
*XOR:在源图像和目标图像相交的地方之外绘制它们,在相交的地方受到对应alpha和色值影响,如果完全不透明则相交处完全不绘制
*/