5

トップラインなしで長方形を描画するxmlシェイプドローアブル(「u-form」)を作成する必要があります。私ができることは、次のように長方形を描くことです。

<?xml version="1.0" encoding="UTF-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle" >

<solid android:color="@color/detailrow_bg_normal" />

<corners
    android:bottomLeftRadius="0dp"
    android:bottomRightRadius="0dp"
    android:radius="1dp"
    android:topLeftRadius="10dp"
    android:topRightRadius="10dp" />

<padding
    android:bottom="2dip"
    android:left="1.5dip"
    android:right="1.5dip"
    android:top="8dip" />

<stroke
    android:width="1dip"
    android:color="@color/detailtable_border" />

しかし、可能であれば、上(または下)の線なしで同じ形状を定義するにはどうすればよいですか?

4

3 に答える 3

11

レイヤーリストを使ってみることができます。このようなものが機能するかどうかを確認します。

<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
    <item>
      <shape android:shape="rectangle">
            <solid android:color="@color/detailtable_border" />
        </shape>
   </item>

   <item android:left="1.5dp" android:right="1.5dp" android:bottom="2dp">
      <shape android:shape="rectangle">
        <solid android:color="@color/detailrow_bg_normal" />
      </shape>
   </item>
</layer-list>

これにより、長方形が境界線の色で塗りつぶされ、デフォルトの背景色でオーバーレイされ、適切な量の右/左/下の境界線の色が表示されます。

于 2012-04-16T17:41:29.020 に答える
2

このコードを試して、このリンクも参照してください:::

私はこれで良い解決策を達成しました:

<?xml version="1.0" encoding="utf-8"?>

<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<!-- This is the line -->
    <item android:top="-1dp" android:right="-1dp" android:left="-1dp">
      <shape>
            <solid android:color="@android:color/transparent" />
            <stroke android:width="1dp" android:color="#ffffff" />
      </shape>
    </item>

</layer-list>

これは、透明な色が必要であるが、それでもオープンストロークの色が必要な場合にうまく機能します(私の場合、私はボトムラインのみが必要でした)。背景色が必要な場合は、上記の回答のように単色を追加できます。

于 2012-04-16T17:34:35.043 に答える
0

2つの図形とLayerListを使用してこれを実現できる場合もありますが、 NinePatch -drawableを使用する方が優れたソリューションであり、簡単であると思います。

于 2012-04-16T17:30:30.157 に答える