我想创建一个包含如下角落的复合视图:
这在Android中如何实现?
答案 0 :(得分:1)
如果有人遇到同样的问题,最好的方法是使用9.png drawables。在xml中,这是不可能的。
答案 1 :(得分:0)
您可以通过在自定义 <vector
文件中使用 drawable
来实现这一点,此处为 invert_shape.xml
:
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="200dp"
android:height="200dp"
android:viewportWidth="400"
android:viewportHeight="400">
<path
android:pathData="M3.146,256.500 L3.146,73.449 C41.770,72.388 72.757,41.041 72.757,2.500 L271.500,2.500 L271.500,256.500 L3.146,256.500 Z"
android:fillColor="#eeffcc"
android:strokeColor="#000000"
android:strokeWidth="5"/>
</vector>
之后,您需要像这样在您的 drawable
中将此 android:background
设置为 LinearLayout
的 activity_main.xml
:
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/linear_layout"
android:background="@drawable/invert_shape"
android:layout_centerInParent="true"
android:orientation="horizontal" />
结果:
您可能会问自己如何在您的 android:path
中实现 <vector
,为此我使用了一个简单的解决方案。您可以使用 Photoshop
或 Illustrator
等程序并在 layer
中创建您的形状。如果您已完成此操作,请右键单击您的 layer
并选择“Copy SVG
”。现在您复制了形状,将其粘贴到 drawable
中的 invert_shape.xml
(此处为 Android Studio
)中,您将获得 Photoshop 形状的 android:path
和 android:stroke
等参数.去掉不必要的参数并确保在 XML
本身中使用正确的属性。现在,您的创造力永无止境。干杯! :)
答案 2 :(得分:-1)
你可以给OneSide Corner设置下面的框架作为布局的背景。
<?xml version="1.0" encoding="UTF-8"?>
<shape
xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<stroke
android:width="1dip"
/>
<solid
android:color="#3D2A1D"/>
<corners
android:radius="20sp"
android:topRightRadius="0dp"
android:bottomLeftRadius="0dp"
android:bottomRightRadius="0dp"/>
</shape>
我不确定-ve border radio。