オプション1:描画可能な形状
これは、背景を設定できるレイアウトまたはビューの周囲に境界線が必要な場合に最も簡単なオプションです。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
ドローアブルをお勧めします。
オプション3:9パッチ
最後のオプションは、次のような9パッチのドローアブルを使用することです。
設定可能な任意のビューで使用できますandroid:background="@drawable/..."
。そして、はい、それは6x6である必要があります-5x5を試しましたが、うまくいきませんでした。
この方法の欠点は、色を簡単に変更できないことですが、派手な境界線が必要な場合(たとえば、この質問のように上部と下部の境界線のみ)、Shape
ドローアブルでそれらを実行できない場合があります。、それほど強力ではありません。
オプション4:追加ビュー
ビューの上下に境界線だけが必要な場合は、この本当にシンプルなオプションについて言及するのを忘れていました。ビューを垂直に配置しLinearLayout
(まだ配置されていない場合)、次View
のようにその上下に空のを追加できます。
<View android:background="#000" android:layout_width="match_parent" android:layout_height="1px"/>