我正在使用第三方库进行初始屏幕。我是从https://github.com/ViksaaSkool/AwesomeSplash得到的。我已经按照整个教程,但我在设置字符串路径时遇到错误。它有一条线 " configSplash.setPathSplash(SyncStateContract.Constants.DROID_LOGO); //设置路径字符串"。 Android工作室无法解析DROID_LOGO,我收到错误。我用DATA替换了DROID_LOGO并得到了这个错误。 正如帖子上所建议我写了这段代码。
public class splashex extends AwesomeSplash {
//DO NOT OVERRIDE onCreate()!
//if you need to start some services do it in initSplash()!
@Override
public void initSplash(ConfigSplash configSplash) {
/* you don't have to override every property */
//Customize Circular Reveal
configSplash.setBackgroundColor(R.color.colorPrimary); //any color you want form colors.xml
configSplash.setAnimCircularRevealDuration(2000); //int ms
configSplash.setRevealFlagX(Flags.REVEAL_RIGHT); //or Flags.REVEAL_LEFT
configSplash.setRevealFlagY(Flags.REVEAL_BOTTOM); //or Flags.REVEAL_TOP
//Choose LOGO OR PATH; if you don't provide String value for path it's logo by default
//Customize Logo
configSplash.setLogoSplash(R.mipmap.ic_launcher); //or any other drawable
configSplash.setAnimLogoSplashDuration(2000); //int ms
configSplash.setAnimLogoSplashTechnique(Techniques.Bounce); //choose one form Techniques (ref: https://github.com/daimajia/AndroidViewAnimations)
//Customize Path
configSplash.setPathSplash(SyncStateContract.Constants.DROID_LOGO); //set path String(**I am getting error here**)
// configSplash.setOriginalHeight(400); //in relation to your svg (path) resource
configSplash.setOriginalWidth(400); //in relation to your svg (path) resource
configSplash.setAnimPathStrokeDrawingDuration(3000);
configSplash.setPathSplashStrokeSize(3); //I advise value be <5
configSplash.setPathSplashStrokeColor(R.color.colorPrimaryDark); //any color you want form colors.xml
configSplash.setAnimPathFillingDuration(3000);
configSplash.setPathSplashFillColor(R.color.colorPrimaryDark); //path object filling color
//Customize Title
configSplash.setTitleSplash("My Awesome App");
configSplash.setTitleTextColor(R.color.colorAccent);
configSplash.setTitleTextSize(30f); //float value
configSplash.setAnimTitleDuration(3000);
configSplash.setAnimTitleTechnique(Techniques.FlipInX);
configSplash.setTitleFont("fonts/myfont.ttf"); //provide string to your font located in assets/fonts/
}
@Override
public void animationsFinished() {
//transit to another activity here
//or do whatever you want
}
}
我得到的错误是
java.lang.RuntimeException: Font asset not found fonts/myfont.ttf
at android.graphics.Typeface.createFromAsset(Typeface.java:190)
我搜索了各种链接,所有建议添加资产文件夹,但我不知道在哪里制作资产文件夹以及存储在其中的内容。 请帮助我了解有关资产和字体的所有详细信息。
我仍然得到这个。
答案 0 :(得分:1)
您必须根据以下路径创建名为 fonts 的文件夹:
your_android_project_folder&gt; app&gt; src&gt;主要&gt;资产&gt;字体强>
现在,在字体文件夹中,您需要存储 myfont.ttf 文件。
答案 1 :(得分:0)
我遇到了同样的问题,这就是我的解决方法:
对于缺少的DROID_LOGO,您可以从此处重写该行:
configSplash.setPathSplash(SyncStateContract.Constants.DROID_LOGO);
对此:
configSplash.setPathSplash(SyncStateContract.Constants.DROID_LOGO);
在这里,请确保将{.3}}中的Constants.java类添加到项目中。
对于缺少的字体,请转到行
configSplash.setTitleFont(“ fonts / myfont.ttf”); //为位于资源/字体/
,然后将myfont.ttf替换为资产/字体文件夹中存在的另一种字体,例如fonts / diti_sweet.ttf(可以在here存储库中找到),并且一切都可以正常工作
答案 2 :(得分:0)
注释此行:
configSplash.setPathSplash(SyncStateContract.Constants.DROID_LOGO);
并将myfont.ttf
重命名为文件夹资产中的字体。