我有一个从左到右动画的渐变视图。我有一个描述内部圆的XML,但是正如您所看到的,XML的边界实际上是矩形的,如何使溢出隐藏在XML的外部。 看起来只有背景是一个圆形,而不是形状本身,我认为解决方法是使用PorterDuff.Mode,但无济于事。
这是我的circle.xml文件:
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="oval">
<stroke
android:width="2dp"
android:color="@android:color/white" />
<corners android:radius="7.5dp" />
<size android:width="327dp" android:height="211.5dp" />
</shape>
在我的布局中,我像这样使用它:
<RelativeLayout
android:id="@+id/white_rectangle"
android:layout_width="327dp"
android:layout_height="211.5dp"
android:layout_gravity="center"
android:clipChildren="true"
android:adjustViewBounds="true"
android:background="@drawable/circle"
>
<View
android:id="@+id/scanner"
android:layout_width="123.5dp"
android:layout_height="211.5dp"
android:layout_gravity="center"
android:background="@drawable/scanner"
android:visibility="gone" />
</RelativeLayout>
我不想让扫描仪走出国门
答案 0 :(得分:1)
您需要设置正方形尺寸才能使其显示为圆形。
您的宽度大于您的高度。试试这个
builder.RegisterAssemblyTypes(persistenceAssembly)
.Where(t => t.Name.EndsWith("Operation"))
.AssignableTo<Base>()
.AsImplementedInterfaces()
.InstancePerLifetimeScope();
答案 1 :(得分:0)
您无需在circle.xml
文件中定义圆圈的大小
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="oval">
<stroke
android:width="2dp"
android:color="@android:color/white" />
<corners android:radius="7.5dp" />
</shape>
只需更改相对布局的大小即可。它必须与宽度或高度相同。
<RelativeLayout
android:id="@+id/white_rectangle"
android:layout_width="120dp"
android:layout_height="120dp"
android:layout_gravity="center"
android:clipChildren="true"
android:adjustViewBounds="true"
android:background="@drawable/circle"
>
<View
android:id="@+id/scanner"
android:layout_width="123.5dp"
android:layout_height="211.5dp"
android:layout_gravity="center"
android:background="@drawable/scanner"
android:visibility="gone" />
</RelativeLayout>
答案 2 :(得分:0)
对我来说,解决方案是使用CardView并将其赋予cardCornerRadius。
答案 3 :(得分:-1)
尝试此库。使用相同的高度和宽度进行查看