Android开发

Android调用今日诗词和配置字体

2021-11-25  本文已影响0人  卓技卓品

睡眠助理项目里添加了今日诗词(今日诗词开放接口)显示。为了达到显示效果,应用内设置方正舒体字体。 今天记录一下集成今日诗词的过程及设置字体的方案。 集成今日诗词直接根据接口文档进行即可,由于我进行Android应用开发,所以参考“安卓 SDK”。 通过Gradle方式,首先添加依赖:

implementation 'com.jinrishici:android-sdk:1.5'

然后再Application中进行初始化:

//今日诗词初始化
JinrishiciFactory.init(getAppContext());

最后在Activity中调用接口获取诗词数据:

JinrishiciClient client = JinrishiciClient.getInstance();
client.getOneSentenceBackground(new JinrishiciCallback() {
    @Override
    public void done(PoetySentence poetySentence) {
        DataBean dataBean = poetySentence.getData();
        if(dataBean != null) {
            String shici = poetySentence.getData().getContent();
            if (!TextUtils.isEmpty(shici)) {
                // 遇见逗号换行显示
                shici = shici.replaceAll(",|,", ",\n");
                mTvJinRiShiCi.setText(shici);
            }
        }
    }
    @Override
    public void error(JinrishiciRuntimeException e) {
        Log.d("111111", "error: code = " + e.getCode() + " message = " + e.getMessage());
    }
});

实际调用中,发现有两点需要注意: 1.获取诗词需要联网,所以需要添加网络权限。 2.实际使用发现调试模式功能正常,但是打出正式包时无法显示,且没有错误信息。经定位发现是没有添加混淆配置:

# Gson uses generic type information stored in a class file when working with fields. Proguard
# removes such information by default, so configure it to keep all of it.
-keepattributes Signature
# For using GSON @Expose annotation
-keepattributes *Annotation*
# Gson specific classes
-keep class sun.misc.Unsafe { *; }
-keep class com.google.gson.stream.** { *; }
# Application classes that will be serialized/deserialized over Gson
-keep class com.jinrishici.sdk.android.model.** { *; }

这样今日诗词配置就完成了。

下面研究一下配置自定义字体,我们以方正舒体(FZSTK.TTF)为例。 首先下载字体文件(.TTF)。若是Windows系统,也可以到系统查询相关文件,字体文件路径在:C:\Windows\Fonts 然后将字体放在项目中assets资源路径下,可以在assets内新建一个fonts资源文件夹,将字体文件放到该路径下。 最后为TextView设置字体显示:

mTvJinRiShiCi = (TextView)headerView.findViewById(R.id.tv_nav_header_jinrishici);
//从asset 读取字体
AssetManager mgr = getAssets();
Typeface tf = Typeface.createFromAsset(mgr, "fonts/FZSTK.TTF");//仿宋
mTvJinRiShiCi.setTypeface(tf);

这样,字体设置就完成了。

诗词及字体效果参考睡眠助理项目。

上一篇 下一篇

猜你喜欢

热点阅读