今天在学习的时候看到书里介绍了application的logo和icon属性,感觉书里没有讲清楚这两者,感觉这两者很像,我就立马动手试了下。
先来说下icon和logo的区别,我觉得直接上图会更容易说明。因为icon和logo属性都是对图像的引用,所以我事先准备了两张照片分别是icon.png和logo.png
然后我分别在androidManifest.xml中引用了下:
代码如图:
然后我跑了一把,给手机截了个图:
所以大家知道这两者的区别了不!
大家看似上述的过程非常简单,可是自从ADT变成了Android Studio之后,要让这个logo显示出来,还是费了一点时间的。
在android studio新建项目的时候,MainActivity继承ActionBarActivity,然后Application使用的theme是Theme.AppCompat.Light.DarkActionBar,然后我就简单的为logo属性设置了logo.png,没想到竟然显示不出来。
目前有两种办法去显示:
1.将MainActivity的父类改成Activity,并使用ThemeOverlay.AppCompat.ActionBar。
为什么要修改MainActivity的父类呢,那是因为如果你还是使用原来的ActionBarActivity的话,这个父类需要使用或扩展Theme.AppCompat主题,如果你不改的话,应用程序会直接挂掉。
2.第二种方法是什么都不该,然后在onCreate函数里添加如下代码:
ActionBar actionBar = getSupportActionBar();
actionbar.setDisplayShowHomeEnabled(true);
actionBar.setLogo(R.drawable.ic_action_refresh);
actionBar.setDisplayUseLogoEnabled(true);
目前还没有搞清楚问题的原因,但是知道可以用这两种办法显示,当然楼主也在网上看到说google新发布的material design不推荐使用logo了。
还有说toolbar是actionbar的升级版,可以使用toolbar来代替actionbar,具体楼主还没尝试,大家可以查查。
如果读者有更好的方法,请指教!