web-dev-qa-db-ja.com

Androidビューの描画可能なxmlで、3つの側面に境界線を作成しますか?

Androidボタンのドローアブルとして定義されたドローアブルを作成したい。長方形を使用してすべての境界線を設定できることがわかったが、3つの側面でそれが必要なときにちょっと行き詰まった。たとえば、上部または下部のいずれかを開いてもらいたいです。

誰かがこれを行う方法を教えてもらえますか?

14
user717572

他の投稿で見ましたが、これを試してみてください

<?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

26
Shubhayu

受け入れられた回答で有効になるパディングに関する問題が発生した場合は、 https://stackoverflow.com/a/11006931 をご覧ください。このソリューションでは、タグの位置属性を使用して同じ効果を実現します。

ActionBarで使用するためのドローアブルを作成しているときに、ここで受け入れられた回答を使用するのに問題があり、リンクされたアプローチがうまくいきました。

6
Dan Cartoon

これはあなたを助けるかもしれません。

IXMLの3つの側面の境界

    <?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>
0
Thriveni