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.AppCompatTheme.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/5664738http://www.jianshu.com/p/3a56180d41fb
相关文章推荐
- Android应用开发中的风格和主题(style,themes)【转】
- Android应用开发中的风格和主题(style,themes)
- android 风格和主题
- Android应用开发中的风格和主题(style,themes)
- Android风格与主题( style and theme )
- android风格和主题程序编写–style & theme
- android主题与风格入门
- Android应用开发中的风格和主题(style,themes)
- Android应用开发中的风格和主题(style,themes)
- Android应用开发中的风格和主题(style,themes)
- Android风格与主题(style and theme)
- android风格和主题编写
- Android开发指南-用户界面-风格和主题
- Android 风格和主题
- Android风格与主题(style and theme)
- Android应用开发中的风格和主题(style,themes)
- Android中的主题和风格学习指南
- Android应用开发中的风格和主题(style,themes)
- Android风格与主题
- Android开发指南-用户界面-风格和主题