Android正确使用资源res文件

news2024/11/14 20:51:47

观看此文注意

首先有的UI改颜色,没用,发现无法更改按钮背景颜色。

我的AS下载的是最新版本,Button按钮的背景颜色一直都是亮紫色,无法更改。

为什么呢?

首先在你的清单文件中看你应用的是哪个主题。

我现在用的是这个

可能你的主题用的是上面的默认的原因。

方法一:

将app/res/themes目录下默认的themes代码加上.Bridge即可。

修改前

<style name="Theme.IntelligentWatch" parent="Theme.MaterialComponents.DayNight.DarkActionBar">

修改后

<style name="Theme.IntelligentWatch" parent="Theme.MaterialComponents.DayNight.DarkActionBar.Bridge">

方法二:

自己定义一个主题,就是类似(我用的),但是我这个是没有ActionBar标题栏的,你需要自己再去定义一个标题栏,然后去清单文件中使用自己定义的主题。

<style name="Theme.IntelligentWatch.NoActionBar">
    <item name="windowActionBar">false</item>
    <item name="windowNoTitle">true</item>
</style>

创建res文件

首先我们创建一个res文件。

右键res文件夹


(一)Resource type:Values

都是放在res\values文件夹下。

其Root element(父节点):只有resources。


  1. 子元素@String

Alt+回车可以自动生成。

<resources>
    <string name="title">登录</string>
    
    <string-array name="ddd">
        <item>"dddd"</item>
        <item>"2222"</item>
    </string-array>
</resources>

双引号可加可不加。

打印出来默认去除,如果想要双引号,则加上转义字符。

<string-array name="ddd">
    <item>\"dddd\"</item>
    <item>\"2222\"</item>
</string-array>

怎么使用呢?

在布局文件里:@String

在Java文件里:getResources().getStringArray(...)


2.子元素@Color

一般是在XML布局文件中使用。

组成部分:# +透明度++绿+(ARGB)

每个部分的值:0-256

<resources>
    <color name="purple_200">#FFBB86FC</color>
    <color name="purple_500">#FF6200EE</color>
    <color name="purple_700">#FF3700B3</color>
    <color name="teal_200">#FF03DAC5</color>
    <color name="teal_700">#FF018786</color>
    <color name="black">#FF000000</color>
    <color name="white">#FFFFFFFF</color>
    <color name="ivory">#EEEEEE</color>象牙白
    <color name="blue">#3161EF</color>蓝色
    <color name="gray">#B3B1B1</color>灰色
</resources>

3.子元素@dimen

尺寸。比如字体大小等等。

<resources>
    <dimen name="fab_margin">16dp</dimen>
</resources>

(二)Resource type:Drawable

放在res\drawable文件夹下。

其Root element(父节点):有很多,这里主要来讲解其中常用的几个。

  1. 根元素@shape

形状。在UI控件的background中设置。

比如我们想要为按钮创建一个背景。

android:shape="rectangle"

ring:圆环 oval:椭圆 rectangle:长方形 line:线

  1. 子元素@solid

中间内容填充的颜色。

2.子元素@corners

拐角的弯曲的弧度

3.子元素@size

大小。

4.子元素@stroke

描边,一般给EditText输入框给一个背景的时候会用到,这个中间不会填充。

5.子元素@gradient

线性渐变。

6.子元素@padding

间距。

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
    <solid android:color="@color/white"/>
    <corners android:radius="100dp"/>
</shape>
<Button
    android:id="@+id/button_first"
    android:layout_width="match_parent"
    android:layout_height="50dp"
    android:text="@string/title"
    android:textSize="20dp"
    android:textColor="@color/blue"
    android:background="@drawable/loading_btn"
    android:layout_margin="28dp"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toBottomOf="@id/textview_first" />

一般设置在XML布局文件的UI控件的background里面,用@drawable/xxx就可以了。


2.根元素@selector

选择器。在UI控件的background中设置。

比如我们想要点击按钮的时候是蓝色,不点击的时候是黑色。

不写 android:state_pressed="false"也可以,因为默认是false。

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_pressed="true" android:drawable="@color/blue"/>
    <item android:state_pressed="false" android:drawable="@color/black"/>
</selector>


(三)特殊Resources type:Values

Style与Themes

根元素都是resources。

其实你可以发现这两个的子元素都是style,而且效果也差不多。

那这两个有什么区别呢?

1.style

针对某个控件,你可以为你的按钮,文字定制一个样式,属于比较小的点。

注意要加android:,不然不会生效,因为也不会报错。

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

    <style name="MyBtnStyle" parent="Theme.MaterialComponents.DayNight.DarkActionBar.Bridge">
        <item name="android:layout_height">50dp</item>
        <item name="android:textSize">25dp</item>
        <item name="android:textColor">@color/blue</item>
        <item name="android:background">@drawable/loading_btn</item>
    </style>

</resources>

在XML布局中使用的时候只需要在UI控件属性中加入下面这句话即可。

style="@style/MyBtnStyle"

style优先级<布局文件属性优先级

也就是说你在XML布局文件中再次写了字体颜色,会覆盖掉style里面的字体颜色。


2.themes

针对整个应用,app是一个怎么样的样式。

在最开始的观看此文有介绍。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/383005.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

PYthon组合数据类型的简单使用

Python的数据类型有两种&#xff0c;基本数据类型和组合数据类型&#xff0c;组合数据类型在Python的使用中特别重要。 1.组合数据类型的分类&#xff1a; 2.序列类型 序列类型中元素存在顺序关系&#xff0c;可以存在数值相同但位置不同的元素。序列类型支持成员关系操作符&…

计算机编程基础

0与1的世界 计算机是由晶体管和电路板组成的电子设备。 不论是我们微信信息的呈现、图像的储存和数字之间的运算本质上都是0和1的信息。 0、1便可以代表电压的高低、开关的闭合以及电阻的导电和不导电。 0、1表示的数字便是“逢二进一”。计算机的最小的储存单位是位&#…

Java如何String字符串带括号转成List

问题现象 今天在做一个需求&#xff1a;将存入数据库中的数据读到后解析成list遍历分析 数据格式&#xff1a; "[1677660600000, 1677660900000, 1677661200000]" "[5, 4, 4,3,2&#xff0c;0,0]" 我一开始想到的就是使用逗号分割即可 结果变成了这样的…

电容笔和Apple pencil有什么区别?开学季电容笔排行榜

与苹果的 Pencil相比&#xff0c;市面上常见的电容笔在压感上是没有具备重力压感&#xff0c;只具备着一种倾斜压感。对于绘画没有过高要求的话&#xff0c;其实一支普通的平替电容笔&#xff0c;就能为我们解决日常很多问题。它不仅可以用在办公上&#xff0c;也可以用在笔记、…

算法小抄3-理解使用Python容器之列表

引言 首先说一个概念哈,程序算法数据结构,算法是条件语句与循环语句组成的逻辑结构,而数据结构也就是容器. 算法决定数据该如何处理,而容器则决定如何数据如何存储. 不同的语言对容器有不同的实现方式, 但他们的功能都是相似的, 打好容器基础,你就可以在各式各样的语言中来回横…

1.Spring Cloud (Hoxton.SR10) 学习笔记—基础知识

本文目录如下&#xff1a;一、Spring Cloud基础知识什么是微服务架构&#xff1f;服务拆分 有哪些注意事项&#xff1f;什么是分布式集群?分布式的 CAP 原则&#xff1f;组件 - Spring Cloud 哪几个组件比较重要&#xff1f;组件 - 为什么要使用这些组件&#xff1f;组件 - Na…

有关白盒加密

白盒密码技术白皮书 有关白盒的概念 其实白盒黑盒之类概念其实是软件保护方面的概念&#xff0c;在很多方面都有应用&#xff0c;例如 黑盒&#xff1a; 传统的加密技术是默认假定处于黑盒中的&#xff0c;也就是假定攻击者无法获得密钥。具体而言&#xff0c;认为攻击者并…

PMP证书含金量如何,打算以后从事项目管理这一行业的有没有必要考这个证书?

建议考一个&#xff0c;虽然说这一纸证书实际不能带来多少利益&#xff0c;只是一个资格证书&#xff0c;项目管理行业入门证书&#xff0c;但是现在很多企业招聘要求中写了“有 PMP 证书”优先录取&#xff0c;还是考一个有备无患。含金量问题一直备受关注&#xff0c;总结了一…

操作系统(1.1)--引论

目录 一、操作系统的目标和作用 1.操作系统的目标 2.操作系统的作用 2.1 OS作为用户与计算机硬件系统之间的接口 2.2 OS作为计算机系统资源的管理者 2.3 0S实现了对计算机资源的抽象 3. 推动操作系统发展的主要动力 二、操作系统的发展过程 1.无操作系统的计算机系统…

Web3中文|日本元宇宙经济“狂飙”

2月27日&#xff0c;三菱、富士通和其它科技公司发布关于建立“日本元宇宙经济区”的协议&#xff0c;表示将联手从角色扮演游戏的角度创建开放的元宇宙基础设施&#xff0c;以推动日本的Web3战略。据了解&#xff0c;日本一直在努力将Web3技术纳入其国家议程&#xff0c;去年1…

规范哈夫曼编码和Deflate算法

经过常规的哈夫曼编码以后&#xff0c;我们需要将每个符号对应的码字记录下来&#xff0c;比较容易想到的是按照字母序记录每个字母的编码&#xff0c;这样的好处是字母与码字的映射关系被隐式记录&#xff1a; 假设字母表 A{a1,a2,a3,a4,a5}\mathcal{A}\{a_1,a_2,a_3,a_4,a_5\…

基于数据驱动的电动车电池数据分析(一)

基于数据驱动的电动车电池数据分析&#xff08;一&#xff09; 欢迎关注笔者的微信公众号 笔者过去一年多的时间都在国内一家头部新能源企业实习&#xff0c;主要参与一些数据分析和平台研发的工作。在工作中积累了一些数据分析的经验&#xff0c;其中新能源领域比较多的是一…

曾经被人们看成是异想天开的产业互联网,或许终将会实现

一波还未平息&#xff0c;一波又起。元宇宙的热度还未彻底散去&#xff0c;ChatGPT已经成为了名符其实的新风口。如果用一个概念来定义现在这样一个热点和风口频出的时代的话&#xff0c;我想&#xff0c;用产业互联网或许是再合适不过的了。对此&#xff0c;可能有人并不认同。…

【设计模式】21.访问者模式

概述 定义&#xff1a; 封装一些作用于某种数据结构中的各元素的操作&#xff0c;它可以在不改变这个数据结构的前提下定义作用于这些元素的新的操作。 结构 访问者模式包含以下主要角色: 抽象访问者&#xff08;Visitor&#xff09;角色&#xff1a;定义了对每一个元素&a…

Outlook邮箱登录不上?被阻止?这些方法教你解决

Outlook是微软的一款备受欢迎的应用软件&#xff0c;可以用来收发电子邮件、管理联系人信息、记日记、安排日程、分配任务等。然而最近就有很多朋友向东哥反映&#xff0c;有的时候没有办法正常登录outlook 邮箱&#xff0c;这是怎么回事呢&#xff1f;不用担心&#xff0c;今天…

揭秘可视化图探索工具 NebulaGraph Explore 是如何实现图计算的

前言 在可视化图探索工具 NebulaGraph Explorer 3.1.0 版本中加入了图计算工作流功能&#xff0c;针对 NebulaGraph 提供了图计算的能力&#xff0c;同时可以利用工作流的 nGQL 运行能力支持简单的数据读取&#xff0c;过滤及写入等数据处理功能。 本文将简单分享下 NebulaGr…

学习记录 --- Pytorch优化器

文章目录参考文献什么是优化器optimizer的定义optimizer的属性defaultsstateparam_groupsoptimizer的方法zero_grad()step()add_param_group()state_dict()、load_state_dict()优化一个网络同时优化多个网络当成一个网络优化当成多个网络优化只优化网络的某些指定的层调整学习率…

总结对Dva数据流向的简单理解

在刚刚接触Dva时&#xff0c;我最想知道的第一个问题就是&#xff1a; 1. Dva是什么&#xff1f; Dva官网文档的介绍是&#xff1a; dva 是体验技术部开发的 React 应用框架&#xff0c;将上面三个 React 工具库包装在一起&#xff0c;简化了 API&#xff0c;让开发 React 应…

[Datawhale][CS224W]图神经网络(八)

目录一、图神经网络1.1 为什么卷积神经网络 (CNN) 在图形上失败&#xff1f;1.2 一个GNN网络的结构如图&#xff1a;![在这里插入图片描述](https://img-blog.csdnimg.cn/20210606150918449.png?x-oss-processimage/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cH…

MySQL实战解析底层---事务隔离:为什么你改了我还看不见

目录 前言 隔离性与隔离级别 事务隔离的实现 事务的启动方式 前言 和数据库打交道的时候&#xff0c;总是会用到事务最经典的例子就是转账&#xff0c;你要给朋友小王转 100 块钱&#xff0c;而此时你的银行卡只有 100 块钱转账过程具体到程序里会有一系列的操作&#xff0…