12
我想绘制像这样的自定义形状 - 。Android:绘制自定义形状
一种选择是在Photoshop中单独制作每个形状,然后在编码中使用它,但是我想知道是否可以使用xml绘制它?
我该如何画这样的形状?不要指望完整的代码,只是给我想法或指向正确的方向。
我想绘制像这样的自定义形状 - 。Android:绘制自定义形状
一种选择是在Photoshop中单独制作每个形状,然后在编码中使用它,但是我想知道是否可以使用xml绘制它?
我该如何画这样的形状?不要指望完整的代码,只是给我想法或指向正确的方向。
试试下面的形状绘制的xml:
<?xml version="1.0" encoding="UTF-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
<!-- Colored rectangle-->
<item>
<shape android:shape="rectangle">
<size
android:width="100dp"
android:height="40dp" />
<solid android:color="#FAD55C" />
</shape>
</item>
<!-- This rectangle for the left side -->
<!-- Its color should be the same as layout's -->
<item
android:right="90dp"
android:left="-30dp">
<rotate
android:fromDegrees="45">
<shape android:shape="rectangle">
<solid android:color="#ffffff" />
</shape>
</rotate>
</item>
<!-- These rectangles for the right side -->
<!-- Their color should be the same as layout's -->
<item
android:top="-40dp"
android:bottom="63dp"
android:right="-25dp">
<rotate
android:fromDegrees="45">
<shape android:shape="rectangle">
<solid android:color="#ffffff" />
</shape>
</rotate>
</item>
<item
android:top="63dp"
android:bottom="-40dp"
android:right="-25dp">
<rotate
android:fromDegrees="-45">
<shape android:shape="rectangle">
<solid android:color="#ffffff" />
</shape>
</rotate>
</item>
</layer-list>
这就是它看起来像一个白色背景:
这里是Shape Drawables更多信息。
编辑:
下面是它是如何做一个小的解释。
size
标签的top, bottom, right and left
属性是指从该形状的边界到所述容器(黄色矩形)的top, bottom, right and left
边缘的距离。例如,如果我们想放置一个较小的矩形的黄色一个的内部从每个黄色矩形的边缘的间隙10dp
我们会设置top, bottom, right and left
属性等于10dp
为新的(内部)的矩形。
size
标签属性的值可以是负值,这意味着形状的相应边出现在容器的外部。在前面的示例中,如果将left
属性设置为100 dp或更高,则内部矩形将不会显示,因为它将位于黄色右边界的后面。关于旋转,顺时针旋转为正值,否则逆时针旋转。
希望这并没有让你感到困惑。
这是非常好的,今天学到了一些有创意的东西,谢谢你 – 2018-02-06 08:02:58