android Theme使用一

我的Android进阶之旅------>解决错误:You need to use a Theme.AppCompat theme (or descendant) with this activity. 1、错误描述今天,想实现Activity不显示标题栏的效果,在项目的AndroidManifest.xml文件,对相应的Activity添加属性 android:theme="@android:style/Theme.NoTitleBar"具体代码如下: 阅读详情

android项目使用的界面布局,控件属性,项目主题等等都是通过资源文件来实现的。

把这块搞明白了,对android开发是非常重要的。

一、attrs.xml

1.1 attrs文件摘要

attrs:这个文件里面放置自定义属性。android自带很多属性,比如我们布局的时候使用的layout_width,layout_height等等,android自带的attrs.xml文件在sdk/platforms/android-版本号/data/res/values/attrs.xml

 

1.2 attrs.xml文件格式:

<?xml version="1.0" encoding="utf-8"?>

<resources>

    <declare-styleablename="TextAppearance">

        <attrname="android:fontFamily" format=”color”/>

        <attrname="android:textAllCaps" />

        <attrname="android:textColor" />

</declare-styleable>

</resources>

 

每个attr代表一个属性,字段format表示这个属性代表的是哪一种资源

1.2.1字段format用法

1. reference:参考某一资源ID

    (1)属性定义:

           <declare-styleable name = "名称">

                   <attr name ="background" format = "reference" />

           </declare-styleable>

    (2)属性使用:

           <ImageView

                     android:layout_width ="42dip"

                     android:layout_height ="42dip"

                     android:background ="@drawable/图片ID"/>

2. color:颜色值

    (1)属性定义:

           <declare-styleable name = "名称">

                   <attr name ="textColor" format = "color" />

           </declare-styleable>

    (2)属性使用:

           <TextView

                     android:layout_width ="42dip"

                     android:layout_height ="42dip"

                     android:textColor ="#00FF00"/>

 3.boolean:布尔值

    (1)属性定义:

           <declare-styleable name = "名称">

                <attr name ="focusable" format = "boolean" />

           </declare-styleable>

    (2)属性使用:

           <Button

                   android:layout_width ="42dip"

                   android:layout_height ="42dip"

                   android:focusable ="true"/>

4. dimension:尺寸值

     (1)属性定义:

            <declare-styleable name = "名称">

                   <attr name ="layout_width" format = "dimension" />

           </declare-styleable>

    (2)属性使用:

           <Button

                   android:layout_width ="42dip"

                   android:layout_height ="42dip"/>

 5.float:浮点值

    (1)属性定义:

           <declare-styleable name = "AlphaAnimation">

                   <attr name ="fromAlpha" format = "float" />

                   <attr name ="toAlpha" format = "float" />

           </declare-styleable>

    (2)属性使用:

           <alpha

                   android:fromAlpha ="1.0"

                  android:toAlpha ="0.7"/>

6. integer:整型值

    (1)属性定义:

           <declare-styleable name = "AnimatedRotateDrawable">

                   <attr name ="visible" />

                   <attr name ="frameDuration" format="integer" />

                   <attr name ="framesCount" format="integer" />

                   <attr name ="pivotX" />

                   <attr name ="pivotY" />

                   <attr name ="drawable" />

           </declare-styleable>

    (2)属性使用:

           <animated-rotate

                   xmlns:android ="http://schemas.android.com/apk/res/android" 

                   android:drawable ="@drawable/图片ID" 

                   android:pivotX ="50%" 

                   android:pivotY ="50%" 

                   android:framesCount ="12" 

                   android:frameDuration = "100"/>

7. string:字符串

    (1)属性定义:

           <declare-styleable name = "MapView">

                   <attr name ="apiKey" format = "string" />

           </declare-styleable>

    (2)属性使用:

            <com.google.android.maps.MapView

                    android:layout_width ="fill_parent"

                    android:layout_height ="fill_parent"

                    android:apiKey ="0jOkQ80oD1JL9C6HAja99uGXCRiS2CGjKO_bc_g"/>

8. fraction:百分数

     (1)属性定义:

           <declare-styleable name="RotateDrawable">

                   <attr name ="visible" />

                   <attr name ="fromDegrees" format = "float" />

                   <attr name ="toDegrees" format = "float" />

                   <attr name = "pivotX" format= "fraction" />

                   <attr name ="pivotY" format = "fraction" />

                   <attr name ="drawable" />

           </declare-styleable>

    (2)属性使用:

           <rotate

                 xmlns:android ="http://schemas.android.com/apk/res/android"

            android:interpolator= "@anim/动画ID"

                 android:fromDegrees ="0"

            android:toDegrees ="360"

                 android:pivotX ="200%"

                android:pivotY ="300%"

            android:duration ="5000"

                 android:repeatMode ="restart"

                 android:repeatCount ="infinite"/>

9. enum:枚举值

    (1)属性定义:

           <declare-styleable name="名称">

                   <attr name="orientation">

                          <enumname="horizontal" value="0" />

                          <enumname="vertical" value="1" />

                   </attr>           

           </declare-styleable>

    (2)属性使用:

           <LinearLayout

                    xmlns:android ="http://schemas.android.com/apk/res/android"

                    android:orientation ="vertical"

                    android:layout_width ="fill_parent"

                    android:layout_height = "fill_parent">

           </LinearLayout>

10. flag:位或运算

     (1)属性定义:

            <declare-styleable name="名称">

                    <attrname="windowSoftInputMode">

                            <flag name ="stateUnspecified" value = "0" />

                            <flag name ="stateUnchanged" value = "1" />

                            <flag name ="stateHidden" value = "2" />

                            <flag name ="stateAlwaysHidden" value = "3" />

                            <flag name ="stateVisible" value = "4" />

                            <flag name ="stateAlwaysVisible" value = "5" />

                            <flag name ="adjustUnspecified" value = "0x00" />

                            <flag name ="adjustResize" value = "0x10" />

                            <flag name ="adjustPan" value = "0x20" />

                            <flag name ="adjustNothing" value = "0x30" />

                     </attr>        

            </declare-styleable>

     (2)属性使用:

           <activity

                   android:name =".StyleAndThemeActivity"

                   android:label ="@string/app_name"

                   android:windowSoftInputMode== "stateUnspecified|stateUnchanged|stateHidden">

                   <intent-filter>

                          <action android:name ="android.intent.action.MAIN" />

                          <categoryandroid:name = "android.intent.category.LAUNCHER" />

                   </intent-filter>

            </activity>

注意:属性定义时可以指定多种类型值。

    (1)属性定义:

           <declare-styleable name = "名称">

                   <attr name ="background" format = "reference|color" />

           </declare-styleable>

    (2)属性使用:

            <ImageView

                     android:layout_width ="42dip"

                     android:layout_height ="42dip"

                     android:background ="@drawable/图片ID|#00FF00"/>


以前我们布局的时候使用一个属性都是android:开头。这是表示我们使用的是android自带的属性,那我们在attrs.xml中定义的数据怎么引用呢?


 

CentOS7上装不了最新Chrome?别折腾依赖了,试试这个老版本安装法(附103.0.5060.24 beta下载地址) 本文提供了在CentOS7上安装兼容版Chrome的详细指南,解决了因GLIBC版本限制导致的最新版Chrome无法安装的问题。推荐使用Chrome 103.0.5060.24 beta版本,并附有下载地址和完整安装步骤,包括禁用自动更新和配套工具安装,确保系统稳定性和功能完整性。 阅读详情

相关推荐

rv1126 SDK编译【2020-0912版本SDK包】

rv1126 sdk 编译

学习记录 1万+

【Android Studio程序开发】按钮触控---按钮控件Button

除了文本视图之外,按钮Button也是一种基础控件。因为Button是由TextView派生而来,所以文本视图 拥有的属性和方法,包括文本内容、文本大小、文本颜色等,按钮控件均能使用。不同的是,Button拥有默认的按钮背景,而TextView默认无背景;Button的内部文本默认居中对齐,而TextView的内部文本 默认靠左对齐。此外,按钮还要额外注意textAllCaps与onClick两个属性,分别介绍如下:1.textAllCaps属性对于TextView来说,text属性设置了什么文本,文本视图

qq_64976935的博客 5579

SLG项目开发经验二_大地图设计与实现

本文深入探讨了SLG游戏大地图设计与实现的关键技术,包括网格化业务框架、AOI系统优化、边界处理方案以及行军系统实现。通过Unity引擎的实践案例,详细解析了大地图性能优化的核心策略,如分块加载、GPU Instancing和差异同步协议,为SLG项目开发提供宝贵经验。

weixin_29001419的博客 222

android:textallcaps="false",主题中的Android textAllCaps

我有一个主题,希望所有关于活动的文字资料被大写.所以我设置一个styleAllCaps在一个样式,然后应用到textViewStyle在我的主题像下面?android:attr/textAppearanceSmalltrue@style/Widget.Apex.TextView不幸的是,这样会产生副作用,即将我的应用程序标题,ActionBar字幕和popumenu项目大小写.所以我想我只是在我的...

weixin_31600439的博客 1031

NTFS分区变成RAW别乱修!正确数据恢复与修复方法详解

文件系统是操作系统管理存储数据的核心机制,NTFS作为Windows主流文件系统,一旦分区识别异常,常会显示为RAW格式。分区变RAW通常意味着文件系统入口信息损坏,而非数据物理消失,但若采用错误的修复方式,如直接对RAW分区执行chkdsk /f,可能因系统无法正确识别文件系统结构,导致写入操作落在错误偏移位置,二次破坏本可恢复的数据。正确的处理思路是:先停止一切写入操作,通过扇区级镜像备份保留原始现场,再分析DBR、分区表及$MFT状态,依据诊断结果选择修复或深度扫描恢复。实际排查中,常见问题如DBR记

weixin_31155097的博客 134

揭秘Synopsys EDA中的AI黑科技:DSO.ai如何改变传统芯片设计流程

本文深入探讨了Synopsys EDA中的AI黑科技DSO.ai如何革新传统芯片设计流程。通过数据驱动的方法论、功耗优化革命和时序收敛智能加速,DSO.ai显著提升了设计效率和质量,实现了从经验驱动到AI驱动的范式转变。文章还提供了实战指南,帮助团队跨越AI EDA的实施鸿沟。

weixin_29296241的博客 527

Android应用开发(7)按键(Button)

本节介绍按钮控件的常见用法,包括:按钮控件大小写属性与文本属性,如何响应点击事件和长按事件,如何禁用和启用按钮等。

zsyf33078的专栏 1万+

RPA机器人技术原理初探

RPA初步

曲折旅程,艰难人生 2137

2、Android基础控件(3)(按钮)

按钮控件Button由TextView派生而来,它们之间的区别有:(1)Button拥有默认的按钮背景,而TextView默认无背景;(2)Button的内部文本默认居中对齐,而TextView的内部文本默认靠左对齐;(3)Button会默认将英文字母转为大写,而TextView保持原始的英文大小写;

weixin_62190821的博客 1057

从“储能”到“信号”:拆解Buck电路中那颗不起眼的前馈电容,如何让电源更稳

本文深入解析Buck电路中前馈电容的关键作用,揭示其如何通过频域整形和零点补偿提升电源稳定性。从工作原理到工程实践,详细介绍了容值计算、布局布线及特殊场景调校策略,帮助工程师优化瞬态响应和纹波抑制。

weixin_42530458的博客 403

【并发编程五】c++进程通信——共享内存(shared memmory)

现代操作系统,对于内存管理,采⽤的是虚拟内存技术,也就是每个进程都有⾃⼰独⽴的虚拟内存空间,不同进程的虚拟内存映射到不同的物理内存中。所以,即使进程 A中 和 进程 B中 的虚拟地址是⼀样的,其实访问的是不同的物理内存地址,对于数据的增删查改互不影响。这样这个进程写⼊的东⻄,另外⼀个进程⻢上就能看到了,都不需要拷⻉来拷⻉去,传来传去,⼤⼤提⾼了进程间通信的速度。⽤了共享内存通信⽅式,带来新的问题,那就是如果多个进程同时修改同⼀个共享内存,很有可能就冲突了。那共享内存的⽅式,就很好的解决了这⼀问题。

junxuezheng的博客 1万+

android:textallcaps="false",如何在运行时检查Android中Edittext / TextView的textallcaps是true / false?...

我为TextView设置了android:textAllCaps =“true”,用于以大写字母显示标签。它显示很好。但是,我需要在运行时检查标签是否在Capital中。但是,我无法找到获取textAllCaps属性的属性。有人可以帮我吗?提前致谢!答案如果您检查TextView / Button源代码,找到heresetAllCaps方法使用setTransformationMethod方法将转...

weixin_42231590的博客 1727

【立创EDA-PCB设计基础】6.布线铺铜实战及细节详解

本文进行布线铺铜实战及详解布线铺铜的细节

嵌入式阿齐Archie 4万+

android 自定义style里 item,安卓自定义theme以及attrs,styles资源文件详解(一)

本篇文章简单介绍自定义主题。一、背景介绍安卓自带各种基础的主题android:theme=”@android:style/Theme.Dialog” : Activity显示为对话框模式android:theme=”@android:style/Theme.NoTitleBar” : 不显示应用程序标题栏android:theme=”@android:style/Theme.NoTitleBar....

weixin_32191249的博客 1087

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

Android style & Theme 再探析(一)——你真的懂Style和Theme吗?

@[TOC](Android style &amp;amp;amp;amp; Theme 再探析(一)——你真的懂Style和Theme吗?) Style 和 Theme 在初学Android都是被各种视频一笔带过,对其理解就是style可以类似html的css 可以继承,可以各种地方直接引用做到直接管控,而theme更是一笔带过,然而当我学到了一个android 国外的style 和 Theme课程才发现,一切并非如...

wanghao的专栏 574

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

android应用Theme(一)

android切换Theme主流三种方式来切换Theme,第一种是通过内置的style来切换,一般用于夜间模式/日间模式切换。第二种是通过apk来实现插件化,第三种是通过下载zip进行解压到到相应的app文件下,应用讲需要文件读取到内存中。这篇是介绍第一种android切换Theme的方法。

Because of dream! 896

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

Android开发一 application 应用界面主题Theme使用方法

android:theme="@android:style/Theme.Dialog" 将一个Activity显示为能话框模式 •android:theme="@android:style/Theme.NoTitleBar" 不显示应用程序标题栏 •android:theme="@android:style/Theme.NoTitleBar.Fullscreen" 不显示应...

weixin_30516243的博客 1246

安卓自定义theme以及attrs,styles资源文件详解(一)(1)

最后对于程序员来说,要学习的知识内容、技术有太多太多,要想不被环境淘汰就只有不断提升自己,从来都是我们去适应环境,而不是环境来适应我们!这里附上上述的技术体系图相关的几十套腾讯、头条、阿里、美团等公司2021年的面试题,把技术点整理成了视频和PDF(实际上比预期多花了不少精力),包含知识脉络 + 诸多细节,由于篇幅有限,这里以图片的形式给大家展示一部分。

2401_84121588的博客 1312

安卓自定义theme以及attrs,styles资源文件详解(一)

其实Android开发的知识点就那么多,面试问来问去还是那么点东西。所以面试没有其他的诀窍,只看你对这些知识点准备的充分程度。so,出去面试时先看看自己复习到了哪个阶段就好。上面分享的百度、腾讯、网易、字节跳动、阿里等公司2021年的高频面试题,博主还把这些技术点整理成了视频和PDF(实际上比预期多花了不少精力),包含知识脉络 + 诸多细节,由于篇幅有限,上面只是以图片的形式给大家展示一部分。【Android思维脑图(技能树)】知识不体系?

2401_84121603的博客 1414

Android资源管理中的Theme和Style-------之总述(一)

        我们知道Android的每个View都会有许多不同的属性,同样的一个View,我们给它的属性赋予不同的值,这个View就会有不同的效果。甚至可以说,Android的界面编程,很大程度上就是给不同的View属性赋值的过程。我们通过改变View的属性值,来改变一个View的形态。比如我们通过改变layout...

大勇的专栏 812

【Android每日一讲】2012.11.06 Android变脸 - 主题(Theme)实现

【Android每日一讲】2012.11.06 Android变脸 - 主题(Theme)实现 1. 范例说明 在之前的范例中曾看见Style的使用,善用Style可让程序开发者与视觉设计人员讨论核心的设计概念,并将Style文件的维护工作交给视觉设计人员来运行,这种新颖的开发模式大幅改善了程序设计人员与视觉设计人员存在已久的沟...

weixin_34080903的博客 88

AndroidUI:Android的Holo Theme

Android 系统的UI有过两次大的变化,一次是android 3.0发布,UI开发支持了Fragment,主要增加了大屏幕显示的支持,这个版本就开始支持Holo Theme,由于android 3.X的设备占有率也不高,这一次的改变没有引起大的关注;再一次的改变就是Android 4.0 ,也就是通常所说的 ICS ,这个于2011年底发布的Android系统,同时也发布了指导性的应用设计

wuruiaoxue的专栏 756

Android使用自定义标签栏报错: IllegalStateException: You need to use a Theme.AppCompat theme

创建的项目中或者有修改相关的配置文件,最容易出现这个问题,他的意思很简单就是你当前使用的皮肤theme不是我需要的,从错误可以看出她需要的皮肤是Theme.AppCompat;出现这个错误的原因是因为我们创建的activity有两个来源:一个是来自Android.app.actiivty的包;另一个是由于来源于v7jar包中的android.support.v7.app.AppCompatActivity包下,不同的包需要的皮肤也不同。 针对这种我们的解决办法也有两种如下: 方法一:将自...

天涯芳草 592

@android:style/Theme.Dialog 出错

android:theme改成@android:style/Theme.Dialog时启用出错。原因:需要继承Activity而不是ActionBarActivity。具体为什么有待继续考证。

技术改变人生 1717
上一篇: eclipse导入Apidemo项目
下一篇: android Theme使用二
dalancon
博客等级 码龄15年 189粉丝 67原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值