具有自定义形状的自定义 ImageView

Posted

技术标签:

【中文标题】具有自定义形状的自定义 ImageView【英文标题】:Custom ImageView With a Custom Shape 【发布时间】:2016-12-27 10:23:40 【问题描述】:

我正在尝试创建一个自定义 ImageView,它在自定义边框和形状而不是默认矩形内显示图像,并且边框的外侧是 TransParent

我的边框是一个 SVG 文件,我该怎么做?谢谢

【问题讨论】:

查看RoundedBitmapDrawable的来源并创建类似的自定义Drawable 【参考方案1】:

使用这个库siyamed/android-shape-imageview 或创建一个自定义视图,从 View 类扩展覆盖方法!

但最简单的方法是使用这个库

创建一个您想要遮盖原始图片的位图并使用它,如下所示:

 <com.github.siyamed.shapeimageview.mask.PorterShapeImageView
                android:layout_
                android:layout_
                android:layout_weight="1"
                android:layout_margin="8dp"
                app:siShape="@drawable/octogon" <!--mask bitmap-->
                android:src="@drawable/neo" <!-- original bitmap -->
app:siSquare="true"/>

【讨论】:

【参考方案2】:

扩展 Image View 类并根据您的使用进行更改。不只是图像视图,您可以自定义任何只需要扩展父类的视图类。

【讨论】:

以上是关于具有自定义形状的自定义 ImageView的主要内容,如果未能解决你的问题,请参考以下文章

具有图层列表背景可绘制的自定义视图呈现黑屏

颤动中的自定义容器形状

视频预览的自定义形状:AVCaptureVideoPreviewLayer?

我想在 UIView 上绘制像苹果形状这样的自定义形状

如何在张量流的自定义损失中获取张量的形状

FactoExtra 包中函数 fviz_pca 中点形状的自定义