テーブルやリストに枠線を付ける方法【Androidアプリ開発】

テーブルやリストに枠線を付ける方法を説明しています。

本記事で説明する方法はdrawableリソースを用いたもので、テーブルやリストに限らず各種コンポーネントに応用できます。

実装例

レイアウト

shape_outer_frame.xml(drawableリソース)

背景色は白、枠線は黒のshapeリソースを作成します。

<shape xmlns:android="http://schemas.android.com/apk/res/android">
<!-- 背景:白 -->
<solid android:color="#ffffff" />

<!-- 枠線:黒 -->
<stroke
android:width="1dp"
android:color="#000000"/>
</shape>

activity_main.xml(layoutリソース)

メインアクティビティのレイアウトです。

backgroundに作成しておいたshape_outer_frameリソースファイルを指定します。shape_outer_frameは”背景:白、枠線:黒”ですので、テーブルに黒い枠線が描かれるようになります。

TableLayout以外でも、同じようにbackgroundを指定すれば枠線を付けることが可能です。例えば、テーブルのセル単位で枠線を描きたい場合は、TableRowのbackgroundを指定します。ただし、枠線が重複して描かれると、線が太く見えてしまいます。よって、線が完全に重なるように調整したり、表現方法を変える等の対応が必要となります。

<TableLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_marginVertical="16dp"
    android:layout_marginStart="16dp"
    android:layout_marginEnd="16dp"
    android:background="@drawable/shape_outer_frame">

    <!-- 省略 -->

</TableLayout>

実行結果

TableLayoutに枠線を付けた場合

テーブルの外側に枠線が描かれています。

TableLayoutに枠線を付けた場合
TableRowに枠線を付けた場合

行の外側に枠線が描かれているため、テーブルの内側・外側に枠線が描かれるようになります。内側の横線は、上辺・下辺の線が限りなく近くに存在するので、他の線よりも太く見えています。

TableRowに枠線を付けた場合
TextViewに枠線を付けた場合

テキストの外側に枠線が描かれています。こちらも内側の横線は、上辺・下辺の線が限りなく近くに存在するので、他の線よりも太く見えています。

TextViewに枠線を付けた場合

まとめ

テーブルやリストに枠線を付ける方法を説明しました。

drawableリソースを用いれば実現可能で、テーブルやリストに限らず他のコンポーネントにも応用できますただし、線が重複して描かれると太く見えてしまうので、線が完全に重なるように調整したり、表現方法を変える等の対応が必要となります。

参考

ドローアブル リソース|Android Developers

Androidアプリ開発
この記事を書いた人

エンジニアとして仕事をしています。
仕事や趣味を通して、開発やプログラミングについて学んだことを綴っていきます。
 ・実務経験は、WEBシステムのサーバーサイドコーディングがメイン
 ・アプリ開発は趣味程度

akihiro-takedaをフォローする
akihiro-takedaをフォローする
プログラミング・開発の備忘録
タイトルとURLをコピーしました