noki雑記

iOS、ときどきAndroid

Android で線とか描画

CSSのborderをAndroidでできないかと思って、調べてたら描けた。2つのやり方を試したのでそれを書く。

1dpのView

1dpの線を引くための方法としてイメージしやすいのは、1dpのViewを作成して、backgroundで色を指定する方法。

<View
    android:layout_width="match_parent"
    android:layout_height="1dp"
    android:background="#DDD" />

あとはこれをRelativeLayoutとかで入れたい位置に入れるだけ。この方法なら、例えば下線だけ入れたいって時には楽だと思う。

shapeやstrokeを使う

1本の線だけでなく、枠線を作りたいっていう時とかは以下の方法を使った。

<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">
    <solid android:color="#CCC"/>
    <stroke
        android:width="3dp"
        android:color="#AAAAAA"
        android:dashGap="3dp"
        android:dashWidth="3dp"
        />
    <padding android:left="3px" android:top="3px"
        android:right="3px" android:bottom="3px" />
    <corners android:radius="2px" />
</shape>

画像(ImageView)のまわりに枠線を描こうと思って作ったやつ。上記は破線の四角形が描ける。paddingも効くので良い。