我正在尝试制作可缩放的RoundImageView。我正在使用此TouchImageView但是我用RoundedImageView而不是标准ImageView进行了扩展。此TouchImageView在某些具有这些背景的FrameLayout中:
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="oval">
<solid android:color="#FFF"/>
此背景还具有TouchImageView。当我调用它的函数setOval(true)时,一切似乎都很好,直到我开始缩放为止。看起来它只能创建圆形的位图,但是ImageView仍然是矩形...
PS:我需要椭圆形而不是圆形。
有一些图像:
缩放前:
缩放后:
谢谢您的每一个回答! ;)
对于同样问题的人。我发现MaskableFrameLayout非常易于使用。它扩展了FrameLayout,因此可以在其中包含可缩放的视图。只需创建椭圆形或可绘制的形状即可:
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="oval">
<solid android:color="#FFFFFF"/></shape>
并使用setMask(drawable)。另外,您还需要setPorterDuffXferMode(...)。我使用了DST_IN。
希望有帮助!