您的位置:首页 > 移动开发 > Android开发

Android 主题和风格【1】

2016-11-10 11:39 246 查看

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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: