BottomNavigationView导致闪退?——低版本安卓系统icon不能使用png图片

笔者在做一个项目时使用了AS自带模板下的BottomNavigationView功能,前期程序打开一直没有问题,在换用Android6.0及以下版本手机时,总是程序一打开就意外停止运行,换用Android7.0以上手机均无此现象,AS反馈的信息是出错在了MainActivity里的:

setContentView(R.layout.activity_on_running);

 进行代码的逐行调试后发现在读取到BottomNavigationView里的menu后返回了错误id,程序终止运行:

app:menu="@menu/bottom_nav_menu"

在此,将原始bottom_nav_menu代码放在下方:




    

    

    

    

直接来看并没有什么问题,并且每项数据都在 ,未调用错误,最后,经多次尝试后发现是icon使用了png图片,并非xml导致的。安卓开发会经常遇到png图片无法加载的错误,针对该问题AS里指定的"android:icon:"数据对象是xml或png,但在Android6.0以下版本,png图片并不能直接作为BottomNavigationView的icon使用,一些新手可能不会编写icon的xml文件,在此笔者提供一种方法:

1.首先从网站上下载对应图标的SVG格式:

BottomNavigationView导致闪退?——低版本安卓系统icon不能使用png图片_第1张图片

          网站有很多,例如iconfont、甚至WPS,然后保存成SVG格式,记住所保存的目录。

2.使用Android Studio进行转化:

          点击File->new->Vector Asset,选择之前保存的图片:

BottomNavigationView导致闪退?——低版本安卓系统icon不能使用png图片_第2张图片

           更改名称和Size,Size大小一般为24dp×24dp,最后点next,选择保存目录,即可自动生成一个xml文件。

 

你可能感兴趣的:(android,安卓,xml)