Android-风格和主题

Posted wzzkaifa

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android-风格和主题相关的知识,希望对你有一定的参考价值。

Android-风格和主题
一 Style和主题Theme的差别
1。Theme是针对窗口级别的,改变窗口样式
2。Style是针对窗口元素级别的。改变指定控件或者Layout的样式

二 使用Style的方式
1,创建Style
在res/values下创建styles.xml文件
加入节点(根节点)
加入自己定义的style和其属性:
style的写法格式

<style name="MyStyle" parent="指定的父style"

name前面不须要有android:

<item name="ATTR须要设置的属性名">[VALUE设定的值]</>

parent属性可选,能够继承其它style的属性,当须要对现有的style做微小的
改变的时候,这个值非常实用
实例:

<style name="ChengzhiStyle">
    <item name="android:textColor">#FFF0000</item>
</style>

2,为控件指定style
在layout中指定:

<TextView
   style="@style/MyStyle"/>

三 主题Theme
1,用法:
在manifest文件里,为Activity指定theme属性(推荐使用这样的方式)

android:theme="@style/AppTheme">

或者在Activity创建是调用setTheme函数(必须在setContentView之前调用。不推荐使用)

@Override
    protected void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        //设置主题
        setTheme(R.style.AppTheme);
        setContentView(R.layout.layout_portrait); 
    }

2。使用系统自带的Theme
经常使用的系统Theme例如以下图:
技术分享

3,自己定义Theme
技术分享

<style name="MyTheme" [parent="继承的主题"]
    <item name="ATTR">[VALUE]</>
</style>

4,实例毛玻璃效果
毛玻璃效果:就是非常多程序第一启动时的界面,或者弹出的对话框后面的模糊的Activity界面

@Override
    protected void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState); 
        //设置毛玻璃效果
        getWindow().setFlags(WindowManager.LayoutParams.FLAG_BLUR_BEHIND, 
                WindowManager.LayoutParams.FLAG_BLUR_BEHIND); 
    }

















以上是关于Android-风格和主题的主要内容,如果未能解决你的问题,请参考以下文章

Android 5.X 新特性详解——主题Palette阴影着色和裁剪

一起Talk Android吧(第三百零九回:风格VS主题)

如何修改Android App的样式风格

为片段设置主题

Android 主题theme说明 摘记

Android开发基础应用界面主题Theme使用方法