Android 主题和风格【1】

来源:互联网 发布:南京品浪钓具淘宝店 编辑:程序博客网 时间:2024/05/18 19:43

1 基础知识学习 Theme 和Style

类似Web开发中,HTML代码负责内容部分,CSS部分负责表现部分,可以把内容和形式分离开。同样在Android的开发中,我们可以使用Theme、Style+UI组件的方式,实现内容和形式的分离,做到界面的自定义。这样可以避免重复的工作,而且便于后期项目的维护。

风格Style是一个包含一种或多种格式化属性的集合,你可以把它应用在UI组件上。主题Theme也是一个包含一种或多种格式化属性的集合,你可以把它应用在整个应用程序(Application)中或者某个窗口(Activity)中.

定义一个style或者theme的方法是一样的。在res/values/目录下简历style.xml或者theme.xml文件,在xml中建立形如这样的代码:

theme和style一样可以继承

自定义主题(Theme)和风格(Style)

2.使用注意事项

1.注意Theme中一般会用到@符号和?符号来应用资源。

@符号表明了我们应用的资源是前边定义过的(或者在前一个项目中或者在Android 框架中)。
问号?表明了我们引用的资源的值在当前的主题当中定义过。

2. Theme使用

在程序中使用主题的方法:

protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setTheme(android.R.style.Theme_Light);
setContentView(R.layout.linear_layout_3);
}

在mainfest.xml中应用主题:

为了在成用当中所有的Activity当中使用主题,你可以打开AndroidManifest.xml 文件,编辑标签,让其包含android:theme属性,值是一个主题的名字,如下:

如果你只是想让你程序当中的某个Activity拥有这个主题,那么你可以修改标签

3. 对话框主题例子

    <style name="ActionSheetDialogStyle" parent="@android:style/Theme.Dialog">        <!-- 背景透明 -->        <item name="android:windowBackground">@android:color/transparent</item>        <item name="android:windowContentOverlay">@null</item>        <!-- 浮于Activity之上 -->        <item name="android:windowIsFloating">true</item>        <!-- 边框 -->        <item name="android:windowFrame">@null</item>        <!-- Dialog以外的区域模糊效果 -->        <item name="android:backgroundDimEnabled">true</item>        <!-- 无标题 -->        <item name="android:windowNoTitle">true</item>        <!-- 半透明 -->        <item name="android:windowIsTranslucent">true</item>        <!-- Dialog进入及退出动画 -->        <item name="android:windowAnimationStyle">@style/ActionSheetDialogAnimation</item>    </style>    <!-- ActionSheet进出动画 -->    <style name="ActionSheetDialogAnimation" parent="@android:style/Animation.Dialog">        <item name="android:windowEnterAnimation">@anim/actiondialog_fade_in</item>        <item name="android:windowExitAnimation">@anim/actiondialog_fade_out</item>    </style>

actiondialog_fade_out.xml

4.Android:Theme.Material和Theme.AppCompat

Material Design的Theme

md的主题有:
@android:style/Theme.Material
@android:style/Theme.Material.Light
@android:style/Theme.MaterialLight.DarkActionBar

与之对应的Compat Theme:

Theme.AppCompat
Theme.AppCompat.Light
Theme.AppCompat.Light.DarkActionBar

个性化的Color Palette
我们可以根据我们的app风格,去定制Color Palette(调色板),重点有以下几个属性

5. 颜色

colorPrimary对应ActionBar的颜色
colorPrimaryDark对应状态栏的颜色
colorAccent对应EditText编辑时、RadioButton选中、CheckBox等选中时的颜色。

6. 隐藏actionbar 用toolbar代替

在使用ActionBar的时候,会很多问题:这个文字能不能定制,位置能不能改变,图标的间距怎么控制等等,ActionBar设计不灵活。为此官方提供了ToolBar,并且提供了support library用于向下兼容。

Toolbar之所以灵活,是因为它其实就是一个ViewGroup,我们在使用的时候和普通的组件一样,在布局文件中声明。

5.参考链接

http://blog.csdn.net/zhangj1012003_2007/article/details/5664738
http://www.jianshu.com/p/3a56180d41fb

0 0
原创粉丝点击