3

次のようなレイヤーリストで、グラデーションシェイプとソリッドシェイプで構成されるボタンドローアブルを作成しました。

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
    <item android:height="25dp">
        <shape android:shape="rectangle" >
            <gradient
                android:angle="90"
                android:startColor="@color/greyDark1"
                android:endColor="@color/greyDark2"/>
        </shape>
    </item>
    <item android:top="25dp" android:height="25dp">
        <shape android:shape="rectangle" >
            <solid android:color="@color/black" />
        </shape>
    </item>
</layer-list>

でも角がうまく取れない。形状全体に丸みを帯びた角が必要ですが、内側には必要ありません (したがって、topRight と topLeft は上半分に、bottomRight と bottomLeft は下半分に)。

<corners android:radius="8dp">上半分の下隅と下半分の上隅も丸みを帯びた状態で両方の半分を設定すると、それは私が望むものではありません。

<corners android:topRightRadius="8dp" android:topLeftRadius"8dp">上半分と下半分を設定すると、上<corners android:bottomRightRadius="8dp" android:bottomLeftRadius"8dp">半分がドローアブルのフルサイズになり、グラデーションが適切に機能せず、下隅も同じ色になります。

これが私が達成しようとしていることのイメージです:

ButtonDrawable

誰かがこれに対する解決策を知っていますか?

編集:

私はいくつかの答えを得て、感謝していますが、残念ながらうまくいかないようです.

私が bofredo と Bhuvnesh Chasta から得た回答は、次のような結果になりました。

ButtonDrawable が間違っています (ハンバーガーに少し似ています)

そして、curiousMind から得た答えはかなり良さそうに見えますが、私が目指しているものではありません。

ButtonDrawable が間違っています (見た目はかなり良いですが)

最終編集:

この問題について一緒に働いていた人と話し合ったところ、このように見えることはそれほど重要ではないということで意見が一致したので、単色にしました。

私はまだ助けてくれたすべての人に感謝したいと思います.

4

5 に答える 5

1

私もかなり前にこの問題を抱えていました。あなたはここでその質問を見つけることができます

これは実用的な答えからのものです:

<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
   <item>
     <shape xmlns:android="http://schemas.android.com/apk/res/android" >   
     <solid android:color="@color/cocus_orange"/>
     <corners android:radius="15px"/>
     <padding android:left="1dp" android:top="1dp" android:right="1dp" android:bottom="1dp" /> 
</shape>
</item>
<item>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
    <gradient android:angle="90" 
        android:startColor="#880f0f10" 
        android:centerColor="#880d0d0f" 
        android:endColor="#885d5d5e"/>
        <corners
            android:radius="15px" />
 </shape> 
</item>
</layer-list>
于 2016-03-15T11:49:23.437 に答える
1

これを試してみてください。角を丸くするための形状で角に使用する必要があります。

<?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="#b2d1d1ef" />
        <corners android:radius="1dp"/>
    </shape>
</item>
<item android:right="1dp" android:left="1dp" android:bottom="2dp" android:top="1dp">
    <shape
        android:shape="rectangle">
        <solid android:color="#FFFFFF"/>
        <corners android:radius="5dp"/>
    </shape>
</item>

于 2016-03-15T11:22:35.203 に答える