android 系統自帶主題樣式及自定義主題樣式
From: http://blog.csdn.net/dawanganban/article/details/17732701
http://www.cnblogs.com/bluestorm/archive/2012/07/12/2588724.html
Android系統自帶樣式(android:theme)(轉)
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="Theme.Translucent : 透明背景
android:theme="Theme.Translucent.NoTitleBar" : 透明背景並無標題
android:theme="Theme.Translucent.NoTitleBar.Fullscreen" : 透明背景並無標題,全屏
android:theme="Theme.Panel ": 面板風格顯示
android:theme="Theme.Light.Panel" : 平板風格顯示
還記得在Android菜鳥的成長筆記(3)中我們曾經遇到了一個問題嗎?"這個介面和真真的QQ介面還有點不同的就是上面的標題myFirstApp,怎麼去掉這個標題呢?",當時我直接在AndroidMainfest.xml中添加了一個屬性:
- android:theme="@android:style/Theme.NoTitleBar"
可能有的朋友就會迷惑了,為什麼添加了這個屬性就可以了。這一篇文章將讓我們一起翻開Android系統原始碼來揭開困擾大家的關於主題使用以及自定義的謎團。
一、樣式(Style)與主題(Theme)
在Android的應用的資原始檔中有一個style.xml檔案,這個檔案是幹什麼用的呢?我們有時候經常需要對某個型別的元件指定大致相似的格式,比如字型、顏色、背景色等,如果我們每次都為某個View元件去重複指定這些屬性,這無疑會產生大量的工作,而且還不利於後期的程式碼修改和維護。而Style就是一個樣式的格式,這個格式可以被多個View元件所使用,也可以說是一個樣式的集合類,被需要這一類樣式集合的View元件所使用。例如我們前面寫的QQ登入介面中的登入按鈕,我們可以給定義一個樣式
- <stylename="buttonStyle">
- <itemname="android:background">@drawable/login_button_nor</item>
- <itemname="android:textColor">@color/buttonTextColor</item>
- </style>
在佈局檔案中引入樣式
- <Button
- android:layout_width="270dip"
-
android:layout_height
- android:text="@string/login_button"
- style="@style/buttonStyle"
- />
(1)在AndroidMainfest.xml中為Activity或者application指定主題
- <application
- android:allowBackup="true"
- android:icon="@drawable/ic_launcher"
- android:label="@string/app_name"
- android:theme="@android:style/Theme.NoTitleBar">
- <activity
- android:name="com.example.myfirstapp.MainActivity"
- android:label="@string/app_name">
- <intent-filter>
- <actionandroid:name="android.intent.action.MAIN"/>
- <categoryandroid:name="android.intent.category.LAUNCHER"/>
- </intent-filter>
- </activity>
- </application>
上面AndroidMainfest.xml程式碼中給整個應用指定了一個主題,這個主題是沒有標題欄的系統主題。
(2)在Activity建立時呼叫setTheme方法(必須在setContentView前面呼叫)來給某個Activity新增主題。
二、剖析主題(Theme)資源
我們先來建立一個工程名字為helloworld,然後開啟它的AndroiodMainfest.xml檔案
- <application
- android:allowBackup="true"
- android:icon="@drawable/ic_launcher"
- android:label="@string/app_name"
- android:theme="@style/AppTheme">
- <activity
- android:name="com.example.helloworld.MainActivity"
- android:label="@string/app_name">
- <intent-filter>
- <actionandroid:name="android.intent.action.MAIN"/>
- <categoryandroid:name="android.intent.category.LAUNCHER"/>
- </intent-filter>
- </activity>
- </application>
可以看到我們在建立工程時,已經預設給我們的整個應用添加了一個主題
- android:theme="@style/AppTheme"
- <resources>
- <!--
- Base application theme, dependent on API level. This theme is replaced
- by AppBaseTheme from res/values-vXX/styles.xml on newer devices.
- -->
- <stylename="AppBaseTheme"parent="android:Theme.Light">
- <!--
- Theme customizations available in newer API levels can go in
- res/values-vXX/styles.xml, while customizations related to
- backward-compatibility can go here.
- -->
- </style>
- <!-- Application theme. -->
- <stylename="AppTheme"parent="AppBaseTheme">
- <!-- All customizations that are NOT specific to a particular API-level can go here. -->
- </style>
- </resources>
- <!-- Theme for a light background with dark text on top. Set your activity
- to this theme if you would like such an appearance. As with the
- default theme, you should try to assume little more than that the
- background will be a light color. -->
- <stylename="Theme.Light">
- <itemname="windowBackground">@drawable/screen_background_light</item>
- <itemname="colorBackground">@android:color/background_light</item>
- <itemname="colorForeground">@color/bright_foreground_light</item>
- <itemname="colorForegroundInverse">@android:color/bright_foreground_light_inverse</item>
- <itemname="textColorPrimary">@android:color/primary_text_light</item>
- <itemname="textColorSecondary">@android:color/secondary_text_light</item>
- <itemname="textColorTertiary">@android:color/tertiary_text_light</item>
- <itemname="textColorPrimaryInverse">@android:color/primary_text_dark</item>
- <itemname="textColorSecondaryInverse">@android:color/secondary_text_dark</item>
- <itemname="textColorTertiaryInverse">@android:color/tertiary_text_dark</item>
-
<
相關推薦
android 系統自帶主題樣式及自定義主題樣式
From: http://blog.csdn.net/dawanganban/article/details/17732701 http://www.cnblogs.com/bluestorm/archive/2012/07/12/2588724.html
Liunx系統下刪除自帶的JDK及安裝需要的JDK版本
一、liunx系統解除安裝自帶的jdk 1. rpm -qa | grep jdk <--檢視系統的jdk具體資訊 2.Java -version &n
在Ubuntu系統上停止使用Anaconda及自帶的Python和解除安裝Anaconda
一、停止使用Anaconda(包括Anaconda帶有的Python環境) 由於Anaconda在安裝過程中也會安上自帶的Python,而Ubuntu系統自帶有Python2.7環境,如果Anaconda安裝的是Python3,會將Python2.7版本覆蓋掉。
android studio中自帶的小圖示自定義使用方法,Android 5.0後Material design icons(金屬設計風格圖示大全)及如何使用
首先我們需要外掛,如圖找到file–New–最後一項Material design icons,開啟在這裡我們可以找我們經常需要的一些圖示,可以自定義大小,顏色,以及生成各個解析度大小的圖示,相當的方便,那麼這些圖示都有哪些呢?大家可以把它下載下來在本地檢視:大致包含的目錄:分
Android讀取外部儲存裝置(自帶SD卡及外部接入儲存裝置 )中的資料庫檔案
我們在開發工作中,時時刻刻在與資料打交道,儲存資料的方式很多,其中使用資料庫來儲存及操作資料是最常見的一種方式。 Android內嵌了SQLite資料庫,這是一種非常流行的嵌入式及輕型關係型資料庫。支援SQL,支援多種作業系統,完全獨立執行,沒有依賴性。
Unity3D_02_基類MonoBehaviour/自帶函數以及腳本執行的生命周期
幀率 標準 between 所有 可用 不同 test 工程 UC 導引: 其中Time,Input,Physics都是Unity中的全局變量。GameObject是遊戲中的基本物件。GameObject是由Component組合而成的,GameObject本身必須有Tra
Android輸入框帶刪除按鈕的自定義View
廢話不多說,用最少的程式碼來實現,記得弄一張名字叫 common_ic_delete 做完刪除的圖到drawable裡。 package com.aiitec.widgets; import android.content.Context; import and
(loadrunner 一) 自帶WebTours使用及異常解決辦法彙總
想用loadrunner 自帶的web tours 練練手,但啟動過程中遇到各種問題。 1、啟動 啟動路徑...HP\LoadRunner\WebTours\run.bat。若遇到1080埠衝突,則將HP\LoadRunner\WebTours\xitami.cfg中“po
初步使用django自帶資料庫和django自帶的後臺管理系統
已有建立好的django專案,進入HiDjango/APP/models.py檔案輸入程式碼新增使用者類class User(models.Model): u_name=models.CharField(max_length=18) u_age=models.
Android應用程式內部切換語言及自定義語言
前言:這是小弟的第一篇部落格,琢磨了半天也不知道這玩意怎麼使,因此必然會有很多不足的地方,希望大家多多指點,謝謝! 國際化一直以來也是Android專案中需要考慮到的一個問題,以往我們所接觸到的國際化無非就是在res目錄下新建幾個values資料夾,裡面存放對
SAP 自帶程式(示例及功能), 持續更新...
經常會用到一些SAP自帶的小程式, 無TCODE, 或者是示例啥的, 慢慢整理一下, 在這裡備查. 1. SAPRDEMOWORD97INTEGRATION 呼叫Word 示例 2. ACC_BAPI_TEST_DOCUMENT A Te
iOS Xcode自帶Git入門及程式碼提交GitHub
首先,Git不是github,Git和github的關係就像是 英雄聯盟和對戰遊戲平臺 其次,Xcode內建了Git,我們可以利用github或者國內的開源中國進行程式碼託管,直接在Xcode上進行團隊協作 客戶端(pc/mac)想要和github(碼雲等
mac 自帶Apache,及php環境的配置
摘要: 系統OS X 10.8.5,Apache是Mac自帶的,主要是php的配置和MySql的配置,網上教程也挺多,本人也有參考,但是感覺有些步驟執行起來不是很順暢,根據自己配置的過程整理 一
opencv2.4.10軟體本身自帶參考資料及手冊
1、Opencv參考手冊位於Opencv的安裝目錄D:\Program File\opencv\build\doc下,opencv2refman.pdf就是其參考手冊 2、opencv2manager
python導入自帶模塊和自定義模塊
所有 自帶 .py print 參考資料 資料 int 普通 不同 模塊就是已經開發好的代碼功能,自己直接導入進來,直接使用。導入分為python 或selenium 自帶的模塊和自己寫的自定義模塊,下面根據這兩個方向寫一下分別導入的方法。 1.導入自帶模塊import s
歸併排序自頂向下及自底向上演算法視覺化
歸併排序自頂向下 工具類 import javax.swing.*; import java.awt.*; import java.awt.geom.*; import java.lang.InterruptedException; public
使用adb命令刪除Android系統data目錄下檔案及資料夾
使用命令刪除data目錄下的資料夾,和刪除一般檔案不同。 data目錄下的檔案需要777許可權,所以需要的命令不同 data目錄: C:\Users\aw>adb shell roo
win10——自帶拼音輸入法開啟自學習
轉載自某度經驗 我一直在抱怨win10自帶的輸入法很爛,連自動學習調整詞的順序都沒有,卻被告知是我沒有正確開啟,因此我去某度搜了一下,的確是我錯怪微軟了,那我就跟大家分享一下正確的開啟方式 1.
android系統相機的使用、及解決拍照閃退的問題
package cn.keno.takephoto; import java.io.File; import java.util.Calendar; import java.util.Locale; import android.app.Activity; import android.content.I
Android系統自帶的MediaRecorder結合Camera實現視訊錄製及播放功能。
近期,公司專案新增了需求,需要視訊錄製,然後儲存到本地,再播放...。 看了很多其他的框架,說不出好壞,應該說各有千秋吧。但我覺得還是原生的靠譜,就是谷歌系統自帶的MediaRecorder。 不多說上程式碼吧(已經測試,沒問題)。 程式碼沒什麼複雜的,都是些