首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >更改Toast字体

更改Toast字体
EN

Stack Overflow用户
提问于 2010-05-31 05:43:59
回答 3查看 27K关注 0票数 20

目前,我正在尝试开发一个应用程序。我不知道如何更改Toast字体。。

代码语言:javascript
复制
 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“处设置一个变量。我试过使用局部变量..但它不起作用

任何关于示例源代码的帮助对我来说都是非常棒的。

EN

回答 3

Stack Overflow用户

发布于 2014-05-14 00:43:31

您可以使用SpannableString设置字体:

代码语言:javascript
复制
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类:

代码语言:javascript
复制
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);
    }
}
票数 10
EN

Stack Overflow用户

发布于 2013-02-21 04:07:23

不幸的是,Java页面上的代码有page。这里有一个你可以实现的工作函数的链接,它给你提供文本(我知道,因为我测试过它),并且稍加巧妙地扩展,可以传递大小、颜色等参数……

Toast字体大小函数here

票数 3
EN

Stack Overflow用户

发布于 2019-03-26 22:18:08

Kotlin函数:

代码语言:javascript
复制
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
    }
}

将其用作:

代码语言:javascript
复制
makeLargeTextToast("text message").show()
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2940465

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档