Roh*_*wal 16 android android-shapedrawable
我想画一个这样的自定义形状 -
.
一个选项是单独在photoshop中制作每个形状,然后在编码中使用它,但我想知道是否可以使用xml绘制它?
我应该如何绘制这样的形状?不要指望完整的代码,只要给我一点想法或指出我正确的方向.
Oni*_*nik 42
尝试以下形状drawable 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>
Run Code Online (Sandbox Code Playgroud)
这就是它在白色背景上的样子:

这里有关于Shape Drawables的更多信息.
编辑:
以下是对它如何完成的一个小解释.
top, bottom, right and left属性size意味着从形状边界到top, bottom, right and left容器边缘的距离(黄色矩形).例如,如果我们想要在黄色的矩形内部放置一个较小的矩形10dp,每个黄色矩形的边缘都有一个间隙,我们将设置的top, bottom, right and left属性等于10dp新的(内部)矩形.
size标记属性的值可以是负数,这意味着形状的相应边缘显示在容器外部.在前面的示例中,如果将left属性设置为100 dp或更高,则内部矩形将不会显示,因为它将位于黄色边框的右边框之后.关于旋转,顺时针方向为正值,逆时针方向为逆时针方向.
希望这不会让你感到困惑.
| 归档时间: |
|
| 查看次数: |
20817 次 |
| 最近记录: |