【Android開発】ListViewの文字サイズ、余白等の変更

アンドロイドアプリ「日報」にタブレット向けの設定を反映していたところ、ListViewで表示している部分の文字サイズが変更されていませんでした。

例)Nexus7で表示した場合(訪問先の文字が小さく表示される)
変更前

そこで、ListViewでも文字サイズや余白を指定する方法を調べてみました。

目的

  • ListViewの文字サイズや余白を変更(dimen.xmlを反映)したい。

Javaファイルの確認

ListViewでは、Javaファイル内でアダプタを使用して、リスト内に表示するデータの受け渡しを行っています。
その際に指定されているlayoutファイルを確認します。

下記は、実際の「日報」の修正前のJavaソースの抜粋です。

ArrayAdapter<String> adapter = new ArrayAdapter<String>(getActivity(), android.R.layout.simple_list_item_multiple_choice,items);

修正前の「日報」では、「R.layout.simple_list_item_multiple_choice」を指定していたことが分かります。

Android配下のLayoutファイルの確認

続いて、上記で確認したAndroidがデフォルトで保持しているlayoutファイル本体を確認します。
私の環境の場合、下記のファイルを参照しました。
[Android Home]\sdk\platforms\android-20\data\res\layout\simple_list_item_multiple_choice.xml
※「android-20」の部分は、利用中のSdkVersionに合わせて変更してください。

新しいlayoutファイルの作成

元々指定していたAndroidのデフォルトのlayoutファイルの内容をコピーして必要な情報を追記・修正し、res\layout配下に配置します。
文字サイズや余白の指定もこのファイルで行います。

下記は、実際に「日報」で作成したlayoutファイルです。

<?xml version="1.0" encoding="utf-8"?>
<CheckedTextView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@android:id/text1"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:checkMark="?android:attr/listChoiceIndicatorMultiple"
    android:gravity="center_vertical"
    android:padding="@dimen/dp_l"
    android:textAppearance="?android:attr/textAppearanceLarge"
    android:textSize="@dimen/sp_m" />

※ファイル名はお好みのものを付けてください。
※dimen.xmlの指定方法は、こちらの記事を参照ください。

Javaファイルの変更

ここまで出来れば後はカンタン♪
最初に確認したJavaのソースで、layoutファイルを指定している個所を修正するだけです。

ArrayAdapter<String> adapter = new ArrayAdapter<String>(getActivity(), android.R.layout.simple_list_item_multiple_choice,items);
ArrayAdapter<String> adapter = new ArrayAdapter<String>(getActivity(), R.layout.listview_multi,items);

無事、ListViewでもdimen.xmlの設定で、文字サイズや余白を変更することができました!!
変更後

以上です。

サブコンテンツ

このページの先頭へ