カスタマイズせずにトーストのフォントサイズを大きくする方法はありますか?
文字サイズを大きくするレイアウトを作りたくありません。
何か方法はありますか?
おかげで、
ニキ
私はそれによってこれが達成できると信じています:
ViewGroup group = (ViewGroup) toast.getView();
TextView messageTextView = (TextView) group.getChildAt(0);
messageTextView.setTextSize(25);
これは...
Toast toast = Toast.makeText(context, R.string.yummyToast, Toast.LENGTH_SHORT);
//the default toast view group is a relativelayout
RelativeLayout toastLayout = (RelativeLayout) toast.getView();
TextView toastTV = (TextView) toastLayout.getChildAt(0);
toastTV.setTextSize(30);
toast.show();
これをスパンで行う方法は次のとおりです。
SpannableStringBuilder biggerText = new SpannableStringBuilder(text);
biggerText.setSpan(new RelativeSizeSpan(1.35f), 0, text.length(), 0);
Toast.makeText(context, biggerText, Toast.LENGTH_LONG).show();
CustomToastView
を作成せずにフォントサイズを大きくすることはできません。
これ は関連する質問です。
Aniの回答に基づいて、テキストサイズを寸法値に設定できる別のソリューションは次のようになります。
public static void showToast(Context context, int resId) {
Toast toast = Toast.makeText(context, resId, Toast.LENGTH_LONG);
LinearLayout toastLayout = (LinearLayout) toast.getView();
TextView toastTV = (TextView) toastLayout.getChildAt(0);
toastTV.setTextSize(TypedValue.COMPLEX_UNIT_PX,
context.getResources().getDimension(R.dimen.TEXT_SIZE));
toast.show();
}
これにより、たとえば、トーストのサイズを、TextViewコントロールやButtonコントロールで指定したサイズと同じにすることができます。
次のコードをマニフェストに挿入してみてください。
<supports-screens
Android:anyDensity="true"
Android:largeScreens="true"
Android:normalScreens="true"
Android:resizeable="true"
Android:smallScreens="true"/>
<Application>
要素の上に置きます。