返回顶部
首页 > 资讯 > 移动开发 >Android中Theme主题和Style样式使用介绍总结
  • 117
分享到

Android中Theme主题和Style样式使用介绍总结

Android 2022-06-06 13:06:31 117人浏览 薄情痞子
摘要

一,Theme主题 1.1,Theme主题作用范围 Theme主要是针对应用级别的或者说窗体级别,可以设置应用主题(应用换肤效果)或者Activity的主题;主题是不能应用在某

一,Theme主题

1.1,Theme主题作用范围

Theme主要是针对应用级别的或者说窗体级别,可以设置应用主题(应用换肤效果)或者Activity的主题;主题是不能应用在某一个单独的View中;

1.2,Theme主题的定义

在AS中res/values/style.xml中定义,例如新建项目AS自动创建的Theme,是系统提供;


      
      @color/colorPrimary
      @color/colorPrimaryDark
      @color/colorAccent

Android系统提供的主题在:..\platfORMs\android-29\data\res\values

常见的系统主题:(来自https://blog.csdn.net/oudetu/article/details/78568436)

android:theme="@android:style/Theme.Dialog"   将一个Activity显示为能话框模式  

android:theme="@android:style/Theme.NoTitleBar"  不显示应用程序标题栏  

android:theme="@android:style/Theme.NoTitleBar.Fullscreen"  不显示应用程序标题栏,并全屏

android:theme="Theme.Light"  背景为白色  

android:theme="Theme.Light.NoTitleBar"  白色背景并无标题栏  

android:theme="Theme.Light.NoTitleBar.Fullscreen"  白色背景,无标题栏,全屏

android:theme="Theme.Black"  背景黑色  

android:theme="Theme.Black.NoTitleBar"  黑色背景并无标题栏

android:theme="Theme.Black.NoTitleBar.Fullscreen"    黑色背景,无标题栏,全屏

android:theme="Theme.Wallpaper"  用系统桌面为应用程序背景  

android:theme="Theme.Wallpaper.NoTitleBar"  用系统桌面为应用程序背景,且无标题栏  

android:theme="Theme.Wallpaper.NoTitleBar.Fullscreen"  用系统桌面为应用程序背景,无标题栏,全屏  

android:theme="Translucent"  半透明  

android:theme="Theme.Translucent.NoTitleBar" 半透明、无标题栏  

android:theme="Theme.Translucent.NoTitleBar.Fullscreen" 半透明、无标题栏、全屏  

android:theme=”Theme.Panel” 半透明,无标题,全屏

android:theme=”Theme.Light.Panel”平板风格显示

常见主题集合中的item属性(来自:Https://www.jianshu.com/p/06a3bbb7ce79)


    @color/white
    
    @color/white
    
    @color/colorAccent
    
    
    #00000000
    
    true
    
    true
    
    true
    
    true
    
    true
    
    #E91E63
    
    true
    
    @drawable/ic_launcher_background
    <!--@color/light_purple-->
    
    
    false
    
    #B0C4DE
    
    #E6E6FA
    
    #1C71A9
    
    #FFFFFF
    
    #C1C1C1
    
    #FF7F50
    
    #FF00FF
    
    #FFD700
    
    #1C71A9
    
    singleTop
    landscape

1.3,Theme主题的使用

在AndroidManifest.xml为应用或者Activity设置theme,通过android:theme = "@style/theme主题名"来引入自己的主题


         //自定义的Theme

在Java代码中设置theme,注意在Activity的onCreate方法中的setContentView(R.layout.activity_main)之前设置;

setTheme(R.style.AppTheme);

自定义属性 res/values/attrs.xml(通过:定义 赋值  使用)

二,style样式

2.1,style样式的使用范围

style样式是针对窗体元素级别的或者说View级别的,改变指定控件或者Layout的样式。

2.2,style作用

抽取一些共同的属性定义到style中,可以省略重复的属性代码。

2.3,定义

res/values/style.xml中新建标签,为此标签设置name属性;如下

    
        ?attr/myHeight
        #0ff0f0      
        15sp          
        200dp     
        match_parent  
        #ff0000         
    

2.4,使用

在xml布局文件中

三,区别

从Theme和style的作用范围可以看出他们的区别;如果一个应用使用了theme,同时应用下的view也使用了style,那么当theme与样式style发生冲突时,style有效,因为style的优先级高于theme;

四,相同点

都是在res/values/style.xml中定义;继承方式也相同即:.继承(只能继承自定义)和parent继承

五,相关

@符号:表明我们应用的资源是已经定义过并存在的,可以直接引用。
 ? 符号:表明我们引用的资源的值在当前的主题当中定义过。


作者:Ang_qq_252390816


--结束END--

本文标题: Android中Theme主题和Style样式使用介绍总结

本文链接: https://lsjlt.com/news/29425.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作