Android Theme and style
来源:互联网 发布:淘宝怎么开企业店铺 编辑:程序博客网 时间:2024/05/16 14:44
每家公司的app都有自己的统一的特色,这就涉及到theme和style,当然他们只不是仅仅为了这个特点存在,想activity的进入动画等都能通过theme和style实现,简单并且减少了代码数,熟练使用theme and style也能做出很炫的效果。
what is theme ?主题是对整个应用中所有的Activity都起作用,或者对指定的Activity起作用 定义格式通常是改变窗口的外观格式,标题,边框等 。
what is style ?为每个View重复地指定字体,颜色等属性,无疑会增加大量的代码,而且不利于我们后期项目的维护,所以就引入样式(Style) 学过web的都知道,我们可以通过css的选择器对html中的元素进行设置;而在UI组件中,我们可以通过style属性来指定 样式。
这就是源码中theme和style所有的样式了,这里不介绍如何使用,只介绍其中属性的意义,能实现什么样的效果,方便在你自己的app中实现自定义!window属性<!-- Window attributes --><itemname="windowBackground">@drawable/screen_background_selector_dark</item> <itemname="windowBackgroundFallback">?attr/colorBackground</item> <itemname="windowClipToOutline"false</item> <itemname="windowFrame">@null</item> <itemname="windowNoTitle"false</item> <itemname="windowFullscreen"false</item> <itemname="windowOverscan"false</item> <itemname="windowIsFloating"false</item> <itemname="windowContentOverlay">@null</item> <itemname="windowShowWallpaper"false</item> <itemname="windowTitleStyle">@style/WindowTitle</item> <itemname="windowTitleSize"25dip</item> <itemname="windowTitleBackgroundStyle">@style/WindowTitleBackground</item> <itemname="windowAnimationStyle">@style/Animation.Activity</item> <itemname="windowSoftInputMode">stateUnspecified|adjustUnspecified</item> <itemname="windowActionBar"false</item> <itemname="windowActionModeOverlay"false</item> <itemname="windowCloseOnTouchOutside"false</item> <itemname="windowTranslucentStatus"false</item> <itemname="windowTranslucentNavigation"false</item> <itemname="windowDrawsSystemBarBackgrounds"false</item> <itemname="statusBarColor">@color/black</item> <itemname="navigationBarColor">@color/black</item> <itemname="windowActionBarFullscreenDecorLayout">@layout/screen_action_bar</item> <itemname="windowContentTransitions"false</item> <itemname="windowActivityTransitions"false</item
以上这段代码来自源码中的themes.xml,都是window的属性
- windowBackground 背景
- windowBackgroundFallback
- windowClipToOutline
- windowFrame Dialog 是否有边框
- windowNoTitle 是否有标题
- windowFullscreen 是否为全屏
- windowOverscan 是否要求窗体铺满整屏幕
- windowIsFloating 是否浮在下层之上
- windowContentOverlay 设置覆盖内容背景
- windowShowWallpaper 是否显示壁纸
- windowTitleStyle 标题栏Style
- windowTitleSize 窗体文字大小
- windowTitleBackgroundStyle 标题栏背景style
- windowAnimationStyle 切换时的动画样式
- windowSoftInputMode在使用输入法时窗体的适配
- windowActionBar 是否打开ActionBar
- windowActionModeOverlay 是否覆盖action
- windowCloseOnTouchOutside 是否再点击外部可关闭
- windowTranslucentStatus 是否半透明状态
- windowTranslucentNavigation 是否使用半透明导航
- windowDrawsSystemBarBackgrounds 是否绘制系统导航栏背景
- statusBarColor 状态栏颜色
- navigationBarColor 导航栏颜色
- windowActionBarFullscreenDecorLayout 全屏时的布局
- windowContentTransitions 内容是否转换
- windowActivityTransitions 活动时候转换
上面内容相信大家都用过,这里简单说一下windowAnimationStyle,主要负责activity的切换时的动画,这里有两种形式,一种是给window设置动画,一种是设置activity的动画
<itemname="@android:windowEnterAnimation">@anim/dialog_enter</item> <itemname="@android:windowExitAnimation">@anim/dialog_exit</item
根据需要设置,这里说明一下设置activity的动画
- activityOpenEnterAnimation
- activityOpenExitAnimation
- activityCloseEnterAnimation
- activityCloseExitAnimation
这里以Activity A跳转到Activity B为例,来说明一下以上四条,第一条A跳转到B,B进入时的动画;第二条A跳转到B,A消失的动画;第三条A返回到B时,进入A的动画;第四条A返回到B,B消失的动画,这里需要说一下,如果你设定的动画没有按照你想想中那样执行,这里你需要查一下是不是两个都设定动画了,这也是我写这篇文章的原因。
当然theme.xml还有很多代码,各种各样的主题都在这里面,你不妨用到的时候再来看看,很多都是上面所介绍的那些属性,这里只看我们平时用的比较多的。
Style使用style的使用相对就很简单了,可以实现代码整洁,减少很多不必要的东西
<stylename="Widget.Button"> <itemname="background">@drawable/btn_default</item> <itemname="focusable"true</item> <itemname="clickable"true</item> <itemname="textAppearance">?attr/textAppearanceSmallInverse</item> <itemname="textColor">@color/primary_text_light</item> <itemname="gravity">center_vertical|center_horizontal</item> </style>
这里就是我们经常用到的button,统一的定义格式,代码简单,直接使用style属性拿来应用即可,这里不详述
熟练使用theme 和style 会给你带来很大的好处,存在即为合理,熟练使用手里的工具提高效率,写出高质量的代码!
- Android Theme and style
- Android Theme and style
- Android Theme and style
- Android Style and Theme
- Android style and theme 小结
- Android风格与主题( style and theme )
- android风格和主题:Style and Theme
- style and theme
- android:theme & android:style
- Style android:style/Theme.Dialog
- Android风格与主题(style and theme)
- Android风格与主题(style and theme)
- Android风格与主题(style and theme)
- Android风格与主题(style and theme)
- Android 风格与主题(style and theme)
- Android风格与主题(style and theme)
- Android 风格与主题(style and theme)
- Android 风格与主题(style and theme)
- 串的模式匹配:KMP算法
- java程序员第八课 tomcat与web程序结构与Http协议
- 手机绑定sim卡
- 11 SMO优化算法(Sequential minimal optimization)
- 镜头跟随GameObject移动。
- Android Theme and style
- 学习TensorFlow,邂逅MNIST数据集
- android中如何把`content://media/external/images/media/Y`转换为`file:///storage/sdcard0/Pictures/X.jpg`?
- Java 开发Log4j 详细使用教程
- SOAP Webservice和RESTful Webservice
- 使用dom4j 把xml格式解析为对象或者对象集合
- Jenkins: How to change JENKINS_HOME on Windows
- Condition使用总结
- BigDecimal用法详解