在可绘制的xml的3个边的android视图上创建边框?

问题描述 投票:13回答:3

我想为我的Android按钮创建一个可绘制的,定义为可绘制的。我发现我可以使用矩形设置所有边界,但是当我需要在三个侧面上时,我有点卡住了。例如,我要打开顶部或底部。

谁能告诉我该怎么做?

android styles xml-drawable shapedrawable
3个回答
27
投票

尝试执行此操作,尽管我在其他帖子上看到了它

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >

<item>
<shape android:shape="rectangle" >
    <solid android:color="#FFFFFF" />
    <padding
        //android:bottom="10dp"  Remove this to avoid seeing the bottom border 
        android:left="10dp"
        android:right="10dp"
        //android:top="10dp"  Remove this to avoid seeing the top border
    />

    <corners android:radius="5dp" />
</shape>
</item>
<item>
<shape android:shape="rectangle" >
    <padding
        android:bottom="5dp"
        android:left="5dp"
        android:right="5dp"
        android:top="5dp" />

    <solid android:color="#666666" />
</shape>
</item>
</layer-list>

https://stackoverflow.com/a/10133434/1244489


6
投票

[如果有人在接受的答案中遇到有关填充生效的问题,请尝试查看:https://stackoverflow.com/a/11006931。该解决方案使用标签上的位置属性来达到相同的效果。

在创建要在ActionBar中使用的可绘制对象时,我在这里无法使用接受的答案,并且链接方法对我有用。


0
投票

这可能对您有帮助。

I XML的三个边的边界

    <?xml version="1.0" encoding="utf-8"?>
    <layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
       <item android:left="0dp" android:right="0dp" 
                             android:top="0dp"  android:bottom="-5dp">
               <shape
                    android:shape="rectangle">

               <solid android:color="#ffffff" />

               <corners android:radius="0dp" />
               <stroke android:width="3dp" android:color="#000000" />
          </shape>
    </item>

© www.soinside.com 2019 - 2024. All rights reserved.