關於Android上的Style檔案的item項

2021-06-21 14:03:30 字數 3655 閱讀 4869

首先,這不是我自己寫的,僅為了儲存下來隨時檢視。原創者不要在意。謝謝!

android上的style分為了兩個方面:

1. theme是針對窗體級別的,改變窗體樣式;

2. style是針對窗體元素級別的,改變指定控制項或者layout的樣式。

android系統的themes.xml和style.xml(位於\base\core\res\res\values\)包含了很多系統定義好的style,建議在裡面挑個合適的,然後再繼承修改。

以下屬性是在themes中比較常見的,源自android系統本身的themes.xml:

@android:drawable/screen_background_dark

@null

false

false

false

@android:drawable/title_bar_shadow

@android:style/windowtitle

25dip

@android:style/windowtitlebackground

@android:style/animation.activity

android:theme="@style/themeactivity"

1、theme:

它的意思為預設狀態,即如果theme這裡不填任何屬性的時候,預設為theme

1.1、theme_nodisplay

它的意思為任何都不顯示。比較適用於只是執行了activity,但未顯示任何東西。

1.2、theme_notitlebar

意思為:背景主題的沒有標題欄的樣式,預設如果沒有設定的話,顯示黑背景

1.3、theme_notitlebar_fullscreen

意思為:背景主題的沒有標題欄且全屏的樣式,預設為黑背景

2、theme_black:

它的意思為預設狀態下黑背景。

2.1、theme_black_notitlebar:

意思為:黑背景主題的沒有標題欄的樣式

2.2、theme_black_notitlebar_fullscreen

意思為:黑背景主題的沒有標題欄且全屏的樣式

3、theme_light

意思為:預設狀態下亮背景,與上述黑背景theme_black相反。

3.1、theme_light_notitlebar

意思為:亮背景主題的沒有標題欄的樣式,與theme_black_notitlebar相反

3.2、theme_light_notitlebar_fullscreen

意思為:亮背景主題的沒有標題欄且全屏顯示的樣式,與theme_black_notitleba_fullscreenr相反

4、theme_dialog

意思為:對話方塊樣式 將整個activity變成對話方塊樣式出現。

5、theme_inputmethod

6、theme_panel

意思為:刪除掉所有多餘的視窗裝飾,在乙個空的矩形框中填充內容,作用範圍相當於把dialog中的所有元素全部去掉,只是乙個空的矩形框,且此為預設的樣式。

6.1、theme_light_panel

意思為:刪除掉所有多餘的視窗裝飾,在乙個空的矩形框中填充內容,作用範圍相當於把dialog中的所有元素全部去掉,只是乙個空的矩形框,且預設是light的樣式。

7、theme_wall*****

意思為:使用牆紙做主題,預設狀態。

7.1、theme_wall*****settings

意思為:使用牆紙做主題,預設是使用將上乙個介面調暗之後作為主題

7.2、theme_light_wall*****settings

意思為:使用牆紙做主題,預設light狀態。

7.3、theme_wall*****_notitlebar

意思為:使用牆紙做主題,且沒有標題欄

7.4、theme_wall*****_notitlebar_fullscreen

意思為:使用牆紙做主題,且沒有標題欄,且全屏顯示

8、theme_translucent

意思為:半透明狀態下的背景,將執行此activity之前的螢幕作為半透明狀態作為此activity執行時的樣式。

8.1、theme_translucent_notitlebar

意思為:半透明狀態下沒有標題欄的背景,將執行此activity之前的螢幕作為半透明狀態作為此activity執行時的樣式。

8.2、theme_translucent_notitlebar_fullscreen

意思為:半透明狀態下沒有標題欄且全屏的背景,將執行此activity之前的螢幕作為半透明狀態作為此activity執行時的樣式。

至於  android的style就比較的廣泛了,如果有過web css開發經典的人來說,應該看一下就會懂的,當然也有它不同之處了。

android的style檔案我們是放在res/values目錄下面的,當然它是乙個 xml檔案 ,根節點是:resources. 下面是乙個示例:

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

在 style裡面只需要定義需要改變的屬性,不作設定的程式會自動引用系統預設的屬性。 在布局檔案中我們怎麼引用呢?

style="@style/textstyle"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="hello, world!" />

其它經過引用style後的edittext定義為:

android:layout_textsize="14sp"

android:textcolor="#fff"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="hello, world!" />

以上只是style的一些簡單的應用 ,下在將會講到乙個非常實用的知識,也就是style的繼承關係。這樣才能更好的簡化我們**的工作量,也更利用整個程式邏輯的組建。它的繼承關係可以有兩種實現的方式:

1. 是通過 parent屬性來指定 

2. 通過點號來指定

接下來我們分別來舉例:

我們程式中應用到最多的可能就是textview了,它可能會有很多種情況 ,比如 作為title,正文,提示等等,而這一些的textview有他的共同點,也有他們的不同之處。首先我們定義乙個通過的style:

以上主要是定義了他的陰影啊,單行啊,超過長度怎麼辦啊。

接下來我們再定義乙個title級別的樣式,title我們也想要這些屬性,那麼就得繼承它了。

首先我們用 parent屬性來繼承

parent屬性中跟的就是父類的名稱,就樣title的陰影 ,字型大小 ,辨色,粗細就一起出來了,而我們不用再去定義title的陰影了。節省了不少的時間。

第二種繼承是利用parentstyle.childstyle的方式 ,用點號來繼承 ,上面的texttitle我們也可以這樣寫:

這樣也能得到預期的效果。這樣做不爽的地方 就是名字就長了,我們在引用這個style的時候,就得 style="@style/textstyle.texttitle",如果繼承的層級越多,這個名字就會越長。

關於android上的NullPointer錯誤

相信很多新手像我一樣,在寫android程式時總會遇到這種錯誤,然後就是焦頭爛額,不知所措,尤其是檢查完所有 發現還是不知道怎麼回事啊!當然,這與我抓錯能力不足的問題有關。我在這裡,無非就是想要總結一下我最近遇到的有關於nullpointer這個錯誤的幾種情況 因為本人實在是太過於粗心,所以犯的錯誤...

關於android上的NullPointer錯誤

相信很多新手像我一樣,在寫android程式時總會遇到這種錯誤,然後就是焦頭爛額,不知所措,尤其是檢查完所有 發現還是不知道怎麼回事啊!當然,這與我抓錯能力不足的問題有關。我在這裡,無非就是想要總結一下我最近遇到的有關於nullpointer這個錯誤的幾種情況 因為本人實在是太過於粗心,所以犯的錯誤...

Android裝置上的OTG

關於驅動 otg驅動在核心配置好 usb host 控制器的時候就已經支援 otg了。如果硬體上不支援otg 那麼就沒有辦法識別插入到 usb guest 口上的裝置。待測試 關於應用 otg對於應用程式來說是和普通的 usb host 口是一樣樣的。所以開發應用程式完全不用管是插入 host 口的...