web-dev-qa-db-ja.com

Android:レイヤーリストとシェイプ要素を使用して、背景として設定したときに水平方向のルールを描画するにはどうすればよいですか?

RelativeまたはLinearLayoutの背景をカスタムのドロアブルに設定したい。シェイプの下部に2本の水平線を描画し、中央部分を透明(空)のままにします。

次の例では、水平線を垂直方向の中心に描画します。必要に応じて、図形の下部に揃える必要があります。 (長方形をアイテムとして追加すると、形状が親の寸法に拡張するのを見ることができますが、線は中央に揃えられます)。

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:Android="http://schemas.Android.com/apk/res/Android" >
 <item>
  <shape Android:shape="line">
      <stroke Android:width="1dip" Android:color="#99b8b9bd" />
      <size Android:height="1dip" />
  </shape>
 </item>
 <item>
  <shape Android:shape="line" Android:top="1dip">
      <stroke Android:width="1dip" Android:color="#FFFFFFFF" />
      <size Android:height="1dip" />
  </shape>
 </item>
</layer-list>
36
Emile

質問を終える前に答えを見つけました。

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:Android="http://schemas.Android.com/apk/res/Android" >
    <item>
      <shape 
        Android:shape="rectangle">
            <stroke Android:width="1dp" Android:color="@color/hr_bottom" />
            <solid Android:color="#00FF0000" />
            <padding Android:bottom="1dp"/>
        </shape>
   </item>

   <item>
      <shape 
        Android:shape="rectangle">
            <stroke Android:width="1dp" Android:color="@color/hr_top" />
            <solid Android:color="#00FF0000" />
            <padding Android:bottom="1dp"/>
        </shape>
   </item>

    <item>
      <shape 
        Android:shape="rectangle">
            <stroke Android:width="1dp" Android:color="#00000000" />
            <solid Android:color="#00000000" />
        </shape>
   </item>

</layer-list>
59
Emile

以下の簡単なコードでも描画できます。

<item
    Android:right="-2dp"
    Android:bottom="-2dp"
    >
    <shape
        Android:shape="rectangle">

        <stroke
            Android:width="0.5dp"
            Android:color="#ff0000"
            Android:dashGap="4dp"
            Android:dashWidth="4dp" />

    </shape>
</item>
3
Huy Tower