Android 樣式小結

關于作者:CSDN內容合伙人、技術專家, 從零開始做日活千萬級APP。
專注于分享各領域原創系列文章 ,擅長java后端、移動開發、商業變現、人工智能等,希望大家多多支持。

目錄

  • 一、導讀
  • 二、概覽
  • 三、使用
    • 3.1 創建并應用樣式
    • 3.2 創建并應用主題
    • 3.3 ? & @ 符號引用
  • 五、 推薦閱讀

在這里插入圖片描述

一、導讀

我們繼續總結學習Android 基礎知識,溫故知新。

本文講述樣式相關知識 。

二、概覽

樣式可以定義界面的格式和外觀。樣式可應用于單個 View(從布局文件中)或應用于整個 Activity 或應用(從清單文件中)。
樣式是使用 name 屬性中提供的值(不是 XML 文件的名稱)引用的簡單資源。因此,可以在一個 XML 文件中將樣式資源與其他簡單資源合并到一個 元素下。

樣式是一個屬性集合,用于指定單個 View 的外觀。樣式可以指定字體顏色、字號、背景顏色等屬性。

主題和樣式有許多相似之處,但其用途不同,后面我們具體講解一下。

三、使用

所有樣式文件定義在下面這個目錄:

res/values/filename.xml文件名可以任意設置。元素的 name 將用作資源 ID
該文件通常命名為 styles.xml

語法

<?xml version="1.0" encoding="utf-8"?>
<resources><stylename="style_name"                                  樣式的名稱parent="@[package:]style/style_to_inherit">        樣式資源。對此樣式應從中繼承樣式屬性的樣式的引用<item                                              定義樣式的單個屬性。必須是 <style> 元素的子元素name="[package:]style_property_name" >style_value</item></style>
</resources>

設計style樣式的目的:在復雜多樣式的控件使用和項目應用中,保持統一的格式和展現效果,同時降低維護成本。

3.1 創建并應用樣式

打開項目的 res/values/styles.xml 文件,按以下步驟操作:

  1. 使用唯一標識樣式的名稱添加

eg:

<?xml version="1.0" encoding="utf-8"?>
<resources><style name="CustomText" parent="@style/Text"><item name="android:textSize">20sp</item><item name="android:textColor">#008</item></style>
</resources>

使用

<?xml version="1.0" encoding="utf-8"?>
<EditTextstyle="@style/CustomText"android:layout_width="fill_parent"android:layout_height="wrap_content"android:text="Hello, World!" />

要知道,我們Style樣式是可以繼承的,通過style標簽中的parent屬性指定新定義的樣式所繼承的樣式。parent繼承的是系統的一些style樣式。繼承是可選的,可以選擇繼承,也可以選擇不繼承。

3.2 創建并應用主題

可以像創建樣式一樣創建主題背景,簡直一模一樣,只是我們使用的位置不同而已,主題主要應用在** 標記或 **上,
使用 android:theme 屬性來引用,然后應用或 Activity 中的每個視圖都會應用指定主題背景中定義的樣式

<manifest ... ><application android:theme="@style/Theme.AppCompat" ... ><activity android:theme="@style/Theme.AppCompat.Light" ... ></application>
</manifest>

Android 提供了多種在整個 Android 應用中設置屬性的方法。例如,您可以直接在布局中設置屬性,將樣式應用到視圖,將主題背景應用到布局,以及以編程方式設置屬性。
所以這些設置方式是有優先級的,下面的列表將決定最終應用哪些屬性。該列表按照優先級從高到低的順序排序:

  1. 通過文本 span 將字符或段落級樣式應用到 TextView 派生的類
  2. 以編程方式應用屬性
  3. 將單獨的屬性直接應用到 View
  4. 將樣式應用到 View
  5. 默認樣式
  6. 將主題背景應用到 View 集合、Activity 或整個應用
  7. 應用某些特定于 View 的樣式,例如為 TextView 設置 TextAppearance

3.3 ? & @ 符號引用

我們先看個例子,同樣是color的引用,一個使用@,一個使用 ?,那他們到底有什么區別呢?

<TextViewandroid:textColor="@color/standard_font" /><TextViewandroid:textColor="?attr/darkColor_ffeaeaea"/>

“@”表示引用資源,聲明這是一個資源引用,格式為:@[package:]type/name

“?”表示引用主題屬性,格式為:?[namespace:]type/name
問號表示:該屬性是當前Theme定義的一個屬性,所以系統將在當前Theme中查找其參數。
以上面的例子來解析,

  1. 從AndroidManifest.xml里面找到應用的主題為: android:theme=“@style/AppTheme”
  2. 在AppTheme主題里面可以找到darkColor_ffeaeaea屬性:
    <style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
……<item name="darkColor_ffeaeaea">@color/colorPrimary</item>
……

如果是應用內定義的屬性,[namespace:]type可以省略,
如:

android:background=“?attr/colorPrimary”

可以簡寫為:

android:background=“?colorPrimary”

如果是引用系統定義的屬性,則不能省略:

android:background=“?android:attr/colorPrimary”

樣式

五、 推薦閱讀

Java 專欄

SQL 專欄

數據結構與算法

Android學習專欄

ddd

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/211355.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/211355.shtml
英文地址,請注明出處:http://en.pswp.cn/news/211355.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

DJI ONBOARD SDK—— 基礎控制功能 Joystick的講解,使用和擴展

DJI ONBOARD SDK/DJI OSDK ROS—— 基礎控制功能 Joystick的使用 概述 使用OSDK/OSDK_ROS 的無人機飛行控制功能&#xff0c;能夠設置并獲取無人機各項基礎參數&#xff0c;控制無人機執行基礎飛行動作&#xff0c;通過Joystick 功能控制無人機執行復雜的飛行動作。 Joystic…

【精彩回顧】恒拓高科亮相第十一屆深圳軍博會

2023年12月6日-8日&#xff0c;由中國和平利用軍工技術協會、全國工商聯科技裝備業商會、深圳市國防科技工業協會等單位主辦以及政府相關部門支持&#xff0c;深圳企發展覽有限公司承的“2023第11屆中國&#xff08;深圳&#xff09;軍民兩用科技裝備博覽會&#xff08;深圳軍博…

02 CSS基礎入門

文章目錄 一、CSS介紹1. 簡介2. 相關網站3. HTML引入方式 二、選擇器1. 標簽選擇器2. 類選擇器3. ID選擇器4. 群組選擇器 四、樣式1. 字體樣式2. 文本樣式3. 邊框樣式4. 表格樣式 五、模型和布局1. 盒子模型2. 網頁布局 一、CSS介紹 1. 簡介 CSS主要用于控制網頁的外觀&#…

C#如何使用SqlSugar操作MySQL/SQL Server數據庫

一. SqlSugar 連接MySQL數據庫 public class MySqlCNHelper : Singleton<MySqlCNHelper>{public static SqlSugarClient CnDB;public void InitDB() {//--------------------MySQL--------------------CnDB new SqlSugarClient(new ConnectionConfig(){ConnectionString…

窮舉問題-搬磚(for循環)

某工地需要搬運磚塊&#xff0c;已知男人一人搬3塊&#xff0c;女人一人搬2塊&#xff0c;小孩兩人搬1塊。如果想用n人正好搬n塊磚&#xff0c;問有多少種搬法&#xff1f; 輸入格式: 輸入在一行中給出一個正整數n。 輸出格式: 輸出在每一行顯示一種方案&#xff0c;按照&q…

玩轉大數據12:大數據安全與隱私保護策略

1. 引言 大數據的快速發展&#xff0c;為各行各業帶來了巨大的變革&#xff0c;也帶來了新的安全和隱私挑戰。大數據系統通常處理大量敏感數據&#xff0c;包括個人身份信息、財務信息、健康信息等。如果這些數據被泄露或濫用&#xff0c;可能會對個人、企業和社會造成嚴重的損…

Unity 資源管理之Resources

Resources是一個特殊的文件夾&#xff0c;用于存放運行時加載的資源。 Resources文件夾中可以放置各種類型的資源文件&#xff0c;如紋理、模型、音頻、預制體等&#xff0c;一般用來存儲預制體和紋理信息。 通過API可以加載和訪問該文件夾及其子文件夾中的資源。 當我們打包…

大數據Doris(三十五):Unique模型(唯一主鍵)介紹

文章目錄 Unique模型(唯一主鍵)介紹 一、創建doris表 二、插入數據

【華為OD題庫-076】執行時長/GPU算力-Java

題目 為了充分發揮GPU算力&#xff0c;需要盡可能多的將任務交給GPU執行&#xff0c;現在有一個任務數組&#xff0c;數組元素表示在這1秒內新增的任務個數且每秒都有新增任務。 假設GPU最多一次執行n個任務&#xff0c;一次執行耗時1秒&#xff0c;在保證GPU不空閑情況下&…

海外獨立站站長常用的ChatGPT通用提示詞模板

目標市場&#xff1a;如何確定目標市場&#xff1f; 用戶需求&#xff1a;如何了解用戶需求&#xff1f; 網站設計&#xff1a;如何設計一個優秀的網站&#xff1f; 用戶體驗&#xff1a;如何提升用戶體驗&#xff1f; 功能規劃&#xff1a;請幫助我規劃網站的功能。 內容…

linux 應用開發筆記---【標準I/O庫/文件屬性及目錄】

一&#xff0c;什么是標準I/O庫 標準c庫當中用于文件I/O操作相關的一套庫函數&#xff0c;實用標準I/O需要包含頭文件 二&#xff0c;文件I/O和標準I/O之間的區別 1.標準I/O是庫函數&#xff0c;而文件I/O是系統調用 2.標準I/O是對文件I/O的封裝 3.標準I/O相對于文件I/O具有更…

SpringBoot 項目 Jar 包加密,防止反編譯

1場景 最近項目要求部署到其他公司的服務器上&#xff0c;但是又不想將源碼泄露出去。要求對正式環境的啟動包進行安全性處理&#xff0c;防止客戶直接通過反編譯工具將代碼反編譯出來。 2方案 第一種方案使用代碼混淆 采用proguard-maven-plugin插件 在單模塊中此方案還算簡…

調用別人提供的接口無法通過try catch捕獲異常(C#),見鬼了

前幾天做CA簽名這個需求時發現一個很詭異的事情&#xff0c;CA簽名調用的接口是由另外一個開發部門的同事(比較難溝通的那種人)封裝并提供到我們這邊的。我們這邊只需要把數據準備好&#xff0c;然后調他封裝的接口即可完成簽名操作。但在測試過程中&#xff0c;發現他提供的接…

[后端卷前端2]

綁定class 為什么需要樣式綁定呢? 因為有些樣式我們希望能夠動態展示 看下面的例子: <template><div><p :class"{active:modifyFlag}">class樣式綁定</p></div> </template><script>export default {name: "goo…

人力資源服務展示網站作用有哪些

就業勞務問題往往是不少人群關注的問題&#xff0c;每個城市都聚集著大量求業者&#xff0c;而人力資源管理公司每年也會新增不少&#xff0c;對求業者來說&#xff0c;通過人力資源公司可以快速便捷的找到所需工作&#xff0c;而對公司來說&#xff0c;市場大量用戶可以帶來收…

C語言第十八集(動態內存管理)

1.malloc函數可以開辟一塊空間,具體搜: 2.malloc函數申請的空間在內存的堆區 而且它只負責幫你申請空間,不負責幫你清理空間 3.free函數可以釋放內存 4.free函數釋放的是內存中的堆區,具體搜: 5.在free函數調用完后記得把對應的指針設為空指針 6.calloc函數跟malloc函數差…

揭秘字符串的奧秘:探索String類的深層含義與源碼解讀

文章目錄 一、導論1.1 引言&#xff1a;字符串在編程中的重要性1.2 目的&#xff1a;深入了解String類的內部機制 二、String類的設計哲學2.1 設計原則&#xff1a;為什么String類如此重要&#xff1f;2.2 字符串池的概念與作用 三、String類源碼解析3.1 成員變量3.2 構造函數3…

[今來] 神話故事:金馬和碧雞

文章目錄 金馬山和碧雞山神話傳說金馬坊和碧雞坊金馬碧雞 金馬山和碧雞山 昆明山明水秀&#xff0c;北枕蛇山&#xff0c;南臨滇池&#xff0c;金馬山和碧雞山則東西夾峙&#xff0c;隔水相對&#xff0c;極盡湖光山色之美。金馬山逶迤而玲瓏&#xff0c;碧雞山峭拔而陡峻&…

[Java][Map]linkedhashmap的引入

我們可以看到&#xff1a; linkedhashmap中元素的讀取是有順序的&#xff0c;基于這種雙向鏈表 我們可以優先讀取8索引bucket上的元素 然后讀取3索引bucket上的元素&#xff0c;以及其掛載的元素 最后讀取0索引bucket上的元素 bucket是hashbucket! 這種寫法是很有序的 也是…

Pytorch初步使用

文章目錄 創建張量指定設備沿軸計算 創建張量 如果說數組是numpy的操作對象&#xff0c;那么張量Tensor就是pytorch的操作單元&#xff0c;從數據內容來說&#xff0c;與高維數組是如出一轍的&#xff0c;但作為一個類&#xff0c;其構造函數支持通過聲明張量的維度來進行初始…