美文网首页Android开发
Android调用今日诗词和配置字体

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

作者: 卓技卓品 | 来源:发表于2021-11-25 10:39 被阅读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);
    

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

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

    相关文章

      网友评论

        本文标题:Android调用今日诗词和配置字体

        本文链接:https://www.haomeiwen.com/subject/isyatrtx.html