文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

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

2022-06-06 13:48

关注

一,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


阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-移动开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯