【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の設定で、文字サイズや余白を変更することができました!!
以上です。