目前,我正在尝试开发一个应用程序。我不知道如何更改Toast字体。。
final OnClickListener clickListener = new OnClickListener() {
public void onClick(View v) {
try {
Toast.makeText(nova.this,"Hello", 500000).show();
}
catch (Exception e) {
Toast.makeText(nova.this,"Exception:" +e, 500000);
}
}
};
我想用我在TypeFace中尝试过的自定义字体来更改文本"Hello“。
然后,我想在"TextClicked“处设置一个变量。我试过使用局部变量..但它不起作用
任何关于示例源代码的帮助对我来说都是非常棒的。
发布于 2014-05-14 00:43:31
您可以使用SpannableString设置字体:
Typeface font = Typeface.createFromAsset(getAssets(), "fonts/ATaha.ttf");
SpannableString efr = new SpannableString("Toast font changed!");
efr.setSpan(new TypefaceSpan(font), 0, efr.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
Toast.makeText(this, efr, Toast.LENGTH_SHORT).show();
具有特定字体集的自定义Span类:
public class TypefaceSpan extends MetricAffectingSpan {
private Typeface mTypeface;
public TypefaceSpan(Typeface typeface) {
mTypeface = typeface;
}
@Override
public void updateMeasureState(TextPaint p) {
p.setTypeface(mTypeface);
p.setFlags(p.getFlags() | Paint.SUBPIXEL_TEXT_FLAG);
}
@Override
public void updateDrawState(TextPaint tp) {
tp.setTypeface(mTypeface);
tp.setFlags(tp.getFlags() | Paint.SUBPIXEL_TEXT_FLAG);
}
}
发布于 2013-02-21 04:07:23
不幸的是,Java页面上的代码有page。这里有一个你可以实现的工作函数的链接,它给你提供文本(我知道,因为我测试过它),并且稍加巧妙地扩展,可以传递大小、颜色等参数……
Toast字体大小函数here
发布于 2019-03-26 22:18:08
Kotlin函数:
fun makeLargeTextToast(text: CharSequence): Toast {
return Toast.makeText(applicationContext, text, Toast.LENGTH_LONG).also {
val toastLayout = it.view as LinearLayout
val toastTV = toastLayout.getChildAt(0) as TextView
toastTV.textSize = 30f
}
}
将其用作:
makeLargeTextToast("text message").show()
https://stackoverflow.com/questions/2940465
复制相似问题