Ye *_*ung 20 android toast android-fonts
目前,我正在尝试开发一款应用.我不知道如何更改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);
}
}
};
Run Code Online (Sandbox Code Playgroud)
我想用我尝试过的TypeFace自定义字体更改文本"Hello".
然后,我想在"TextClicked"的地方设置一个变量..我已尝试使用局部变量..但它不起作用
任何有关示例源代码的帮助对我来说都非常棒.
Dri*_*anX 32
答案在这里:https://stackoverflow.com/a/13231981
重构一点之后:
Toast toast = Toast.makeText(context, R.string.yummyToast, Toast.LENGTH_SHORT);
LinearLayout toastLayout = (LinearLayout) toast.getView();
TextView toastTV = (TextView) toastLayout.getChildAt(0);
toastTV.setTextSize(30);
toast.show();
这对我来说就像一个魅力!
Rof*_*ion 18
从官方文档:
如果简单的短信不够,您可以为Toast通知创建自定义布局.要创建自定义布局,请在XML或应用程序代码中定义View布局,并将根View对象传递给
setView(View)方法.
以下链接到官方Google文档将提供示例.
Ham*_*FzM 10
您可以使用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();
Run Code Online (Sandbox Code Playgroud)
具有特定字体集的自定义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);
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
22253 次 |
| 最近记录: |