Toast の文字を大きくする


20130311toast
上は標準の Toast (14sp)、下は今回のカスタマイズ (32sp)。

Toast の文字を大きくするには、
Toast#makeText に相当するクラスを作ることで対応できます。
ソースコードは code.google にあります。

Toast.java のソースを読むと。
文字の大きさは、makeText() の中で読み込まれるレイアウトファイル transient_notification で設定されている。
レイアウトファイルは さらに スタイル TextAppearance.Small を参照している。
文字の大きさは 14sp 固定です。

Toast の文字を大きくするのは、下記のようなコードにする。

使い方

// 32sp で表示する
MyToast.makeText( this, "abc", Toast.LENGTH_LONG, 32f ).show();

MyToast.java

public static Toast makeText( Context context, CharSequence text, int duration, float size ) {
	Toast result = new Toast( context );
	LayoutInflater inflate = (LayoutInflater)
		context.getSystemService( Context.LAYOUT_INFLATER_SERVICE );
	View v = inflate.inflate( R.layout.toast, null );
	TextView tv = (TextView) v.findViewById( R.id.message );
	tv.setText( text );       
	tv.setTextSize( size ); 
	result.setView( v );
	result.setDuration( duration );
	return result;
}

toast.xml

<TextView
	android:id="@+id/message"
	android:layout_width="wrap_content"
	android:layout_height="wrap_content"
	android:layout_weight="1"
	android:textColor="#ffffffff"			                                        
	android:textSize="14sp" // デフォルトの文字の大きさ
	android:shadowColor="#BB000000"
	android:shadowRadius="2.75" />

関連記事
Toast の移植
Toast が固まるのを回避する
・Toast の文字を大きくする
Toast の表示時間を変更する


コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です