• Stars
    star
    984
  • Rank 46,528 (Top 1.0 %)
  • Language
    Java
  • License
    Apache License 2.0
  • Created over 6 years ago
  • Updated over 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Android 圆角、圆形 ImageView

NiceImageView

效果预览

特点

  • 基于AppCompatImageView扩展
  • 支持圆角、圆形显示
  • 可绘制边框,圆形时可绘制内外两层边框
  • 支持边框不覆盖图片
  • 可绘制遮罩
  • ......

基本用法

Step 1. 添加JitPack仓库 在项目根目录下的 build.gradle 中添加仓库:

allprojects {
    repositories {
        ...
        maven { url "https://jitpack.io" }
    }
}

Step 2. 添加项目依赖

dependencies {
    implementation 'com.github.SheHuan:NiceImageView:1.0.5'
}

Step 3. 在布局文件中添加CornerLabelView

<com.shehuan.niv.NiceImageView
    android:layout_width="200dp"
    android:layout_height="200dp"
    android:layout_marginTop="10dp"
    android:src="@drawable/cat"
    app:border_color="#FF7F24"
    app:border_width="4dp"
    app:is_circle="true" />

支持的属性、方法

属性名 含义 默认值 对应方法
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()

其它

如果你需要实现类似钉钉的圆形组合头像,例如:

可以先生成对应的Bitmap,并用圆形的 NiceImageView 显示即可。如何生成组合Bitmap可以参考这里:CombineBitmap