Android Material Design之修改样式

来源:互联网 发布:windows latex编辑器 编辑:程序博客网 时间:2024/05/14 12:33

Material Design 是与Android Lollipop(5.0)一起推出的一种全新的设计语言,这种设计语言旨在为手机、平板电脑、台式机和“其他平台”提供更一致、更广泛的“外观和感觉”。说白了,就是“更好看”。
MD Demo
譬如说可以自定义导航栏的颜色使之与应用整体更加搭配(新浪微博就没注意这点),还有下面的信封小图标,可以自定义任何图标、文字、动画效果,还有下图中的抽屉效果(QQ在用)。
MD Demo Drawer
这些都是安卓自带的设计效果,新建项目时会自己添加上来,但即使是这样,同样会遇到很多问题。
1.修改导航栏颜色
新建项目时所有的样式颜色都是自定义好的,但是自己项目的UI不一定就与默认项目的设定一样,这时就需要修改样式颜色。这还算简单,找到manifest文件,跳到styles文件中就可以了,想怎么改怎么改。

android:theme="@style/AppTheme"
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">        <!-- Customize your theme here. -->        <item name="colorPrimary">@color/colorPrimary</item>        <item name="colorPrimaryDark">@color/colorPrimaryDark</item>        <item name="colorAccent">@color/colorAccent</item></style>

2.隐藏标题栏
过去的做法无非两种,一种是在加载布局前加上requestWindowFeature(Window.FEATURE_NO_TITLE)这么一句,但是自从Material Design的概念引入之后,TitleBar已经没有了,取而代之的ToolBar,所以隐藏标题栏那句是没有用的。二就是更改主题,有没有效果先不论,界面变成这个样子,你能受得了?
这里写图片描述
还是在styles里,加上<item name="windowNoTitle">true</item>这句就行了(不过只在Empty Activity中有效,可以理解为要么就用Material Design,要么就不用或是自己定义)。
3.自定义主题属性
在一些特定的需求当中,需要activity用到特定的主题,这时就出现了一个问题,那就是某些主题与Material Design不兼容,与Material Design兼容的主题中又没有我想要的效果,那又怎么办呢?
那就只能自定义主题了。
譬如说在侧滑销毁activity中需要用到透明主题,那就直接在styles中定义。

<style name="Theme.AppCompat.Translucent">        <item name="android:windowBackground">@android:color/transparent</item>        <item name="android:colorBackgroundCacheHint">@null</item>        <item name="android:windowIsTranslucent">true</item>        <item name="android:windowAnimationStyle">@android:style/Animation.Translucent</item>        <item name="windowActionBar">false</item>        <item name="windowNoTitle">true</item>        <item name="colorPrimary">@color/colorPrimary</item>        <item name="colorPrimaryDark">@color/colorPrimaryDark</item>        <item name="colorAccent">@color/colorAccent</item></style>

然后在manifest对应的activity中直接引用就行了。

android:theme="@style/Theme.AppCompat.Translucent"

以上就是我在实际工作中遇到的一些问题和解决方案,如有错误和纰漏,欢迎交流。

再一次的拿来主义

一直在冥思苦想这周的博客到底写什么,因为我本身的技术水平就不高,何况很多东西都已经被好多大神写过了,他们所表述出来的深度与广度都是我远远不能及的。如果还像上周那样摘几个别人的代码再点评几句我觉得就失去了周更的意义,但是看到了好例子又迫切的想分享出来。所以就造成了现在的状况:上半部分是我个人的技术分享,下半部分是大神们的。

1.非第三方一键分享到qq,微信,微博
http://blog.csdn.net/baiyuliang2013/article/details/50344967#comments
功能很强大,但是要去各大开发者平台注册自己的账号,然后换成自己的appkey。
2.仿QQ获取设备中APK并分享
http://blog.csdn.net/lfdfhl/article/details/51286284#rd
这是我新发现的一个大神,功能炫酷到无以复加,可以直接把自己手机上安装的程序分享给别人,而且实现起来也不复杂,照着代码敲一遍会很有收获。
3.Android下拉刷新完全解析,教你如何一分钟实现下拉刷新功能
http://blog.csdn.net/guolin_blog/article/details/9255575
郭霖郭神封装好的下拉刷新,郭神的名字就代表着质量,我等码渣就只能膜拜了。

1 0
原创粉丝点击