テクノモンキーのアプリ開発日記

テクノモンキーの開発ブログです。iOS、Android、Unity、Cocos2d-xなどアプリ開発関連のTipsやアプリ開発に役立つ情報を発信します。

【Android】TextViewを1行に収める、フォントを自動でリサイズさせる方法

Androidアプリ開発でTextViewに長文を入力すると、表示が切れてしまったり勝手に改行されたりしてしまうので、TextViewの表示を適切にする為のメモ。

TextViewを1行に収める方法

TextViewに入力した文字列が長文な場合、TextViewのサイズに収まりきらないと表示が切れてしまう場合があります。
下記のようにTextViewを設定すれば、収まらない場合末尾のテキストを「...」で表現してくれるので表示が崩れにくいです。

例)あいうえおか....

<TextView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:id="@+id/description"
        android:textSize="15sp"
        android:gravity="center|left"
        android:singleLine="true"
        android:scrollHorizontally="true"
        android:ellipsize="end"/>

developer.android.com


TextViewサイズに合わせてフォントを自動調節する

上記の方法なら表示崩れは防げますが、全ての文字を表示できない点が問題点があります。

TextViewに全てのテキストを表示させたい場合は、下記の「ResizeTextView」がおすすめです。

「ResizeTextView」はTextViewの縦横幅に合わせてフォントサイズを自動調整してくれるので、全てのテキストを表示できます。


monakap.hatenablog.com

ただ、こちらの場合だと、無理やりテキストをTextViewに収めるので、TextViewのサイズやテキストの文字数によってはフォントサイズがかなり小さくなるという点があるので注意が必要です。