オプション 1: Shape Drawable
背景を設定できるレイアウトまたはビューの周囲に境界線が必要な場合は、これが最も簡単なオプションです。drawable
次のようなフォルダーに XML ファイルを作成します。
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle" >
<solid android:color="#8fff93" />
<stroke
android:width="1px"
android:color="#000" />
</shape>
solid
塗りつぶしたくない場合は削除できます。background="@drawable/your_shape_drawable"
レイアウト/ビューのセット。
オプション 2: バックグラウンド ビュー
これは、私が で使用した小さなトリックRelativeLayout
です。基本的に、境界線を付けたいビューの下に黒い四角形があり、そのビューにパディング (余白ではありません!) を与えて、黒い四角形が端から見えるようにします。
明らかに、これはビューに透明な領域がない場合にのみ適切に機能します。その場合はBorderView
、境界線のみを描画するカスタムを作成することをお勧めします。これは、数十行のコードである必要があります。
<View
android:id="@+id/border"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBottom="@+id/image"
android:layout_alignLeft="@+id/image"
android:layout_alignRight="@+id/image"
android:layout_alignTop="@+id/main_image"
android:background="#000" />
<ImageView
android:id="@+id/image"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_...
android:padding="1px"
android:src="@drawable/..." />
あなたが疑問に思っているなら、それはで動作しadjustViewBounds=true
ます。RelativeLayout
ただし、全体に背景が必要な場合は機能しません。これはRelativeLayout
、 をView
. その場合は、Shape
drawable をお勧めします。
オプション 3: 9 パッチ
最後のオプションは、次のような 9 パッチのドローアブルを使用することです。

を設定できる任意のビューで使用できますandroid:background="@drawable/..."
。はい、6x6 である必要があります - 私は 5x5 を試しましたが、うまくいきませんでした。
この方法の欠点は、色を簡単に変更できないことですが、派手な境界線 (たとえば、この質問のように上下の境界線のみ) が必要な場合は、Shape
drawableでは変更できない可能性があります。 、あまり強力ではありません。
オプション 4: 追加のビュー
ビューの上下に境界線のみが必要な場合は、この非常に単純なオプションについて言及するのを忘れていました。ビューを垂直に配置しLinearLayout
(まだない場合)、次View
のように上下に空の sを追加できます。
<View android:background="#000" android:layout_width="match_parent" android:layout_height="1px"/>