導航:首頁 > 編程語言 > android代碼中設置theme

android代碼中設置theme

發布時間:2023-04-15 21:18:36

① android怎麼修改系統dialog風格

1、編寫一個文本樣式。

DIALOG的標題是一個textview,在sytles.xml中,添加如下代碼來設置你自己的文本樣式:

?

<style name="DialogWindowTitle">

<item name="android:textSize">22sp</item>

<item name="android:textColor">@color/font_dark_grey</item>

</style>

2、設置對話框的標題主題。

上面的標題文本並不能直接設置為對話框的標題樣式。 我們還需要編寫一個表示標題的主題的style,在這里指定標山瞎題的文本樣式。代碼如下:

?

<style name="DialogWindowTitle.DeviceDefault">

<item name="android:maxLines">1</item>

<item name="android:scrollHorizontally">true</item>

<item name="android:textAppearance">@style/DialogWindowTitle</item>

</style>

3、設置對話框主題。

接下來,我們編寫我們的對話框主題,在這里指定標題的主題。由於一些屬性並不是public的,所以我們需要繼承自原來的某個style,代碼如下:

?

<!--Dialog主題-->

<style name="Theme.DeviceDefault.Dialog" parent="@android:style/Theme.DeviceDefault.Light.Dialog">

<item name="android:windowTitleStyle">@style/DialogWindowTitle.DeviceDefault</item>

</style>

4、自定義App的主題。

接下來,我們需要在我們的App theme中指定我們的對話框使用這種主題,所以需要定義一個App theme。同樣由於App theme的許多屬性並不是public的(比如下面要提到的標題下面的那條藍線),所以我們要繼承自一個原生的style。這里我根據程序需要選擇了Theme.Holo.Light.NoActionBar,代碼如下:

?

<style name="ParkingTheme" parent="@android:style/Theme.Holo.Light.NoActionBar">

<item name="android:dialogTheme">@style/Theme.DeviceDefault.Dialog</item>

</style>

5、指定App主題。

最後一步,我們需要在AndroidManifest.xml文件中,指定我們的app主題。這步很簡單,只需要在application標簽中指定android:theme的值即可,如下:

?

android:theme="@style/ParkingTheme"

不過這只是指定了Dialog的主毀叢題。如果是通過AlertDialog創建出來的對話框,主題還是原來的。所以我們還需要以下步驟。

7、編寫AlertDialog主題。

我們無法直接繼承系逗余空統主題里的AlertDialog的style。如把parent指定為Theme.DeviceDefault.Dialog.Alert,Theme.Holo.Dialog.Alert,Theme.DeviceDefault.Light.Dialog.Alert或Theme.Holo.Light.Dialog.Alert,都會導致編譯不過。所以我們需要繼承自Dialog的style。在這里我以Theme.Holo.Light.Dialog為例,代碼如下:

<!--AlderDialog主題-->

<style name="Theme.DeviceDefault.Dialog.Alert" parent="@android:style/Theme.Holo.Light.Dialog">

<item name="android:windowBackground">@android:color/transparent</item>

<item name="android:windowTitleStyle">@style/DialogWindowTitle.DeviceDefault</item>

<item name="android:windowContentOverlay">@null</item>

<item name="android:windowMinWidthMajor">@android:dimen/dialog_min_width_major</item>

<item name="android:windowMinWidthMinor">@android:dimen/dialog_min_width_minor</item>

</style>

在這里我參考了原生的alertDialog的style,設定了窗口背景為透明,以及windowContentOverlay為null這兩個重要屬性,否則你會看到在AlertDialog下面還有一層對話框的背景,或者是對話框的背景遮住了所有內容這樣的問題存在。

8、指定AlertDialog的主題。

我們需要在第4步所說的自定義的AppTheme中,添加一行代碼來指定要使用的AlertDialog的style,代碼如下:

?

<item name="android:alertDialogTheme">@style/Theme.DeviceDefault.Dialog.Alert</item>

9、修改標題下面的藍色線。

如果你修改了對話框的主題顏色,那麼標題下面的藍色的線肯定會讓你很郁悶。如果對話框較少,你可以選擇隱藏標題,然後自定義一個包含了標題的View來設置為對話框的內容。但是如果你的對話框有許多種,而且本來都是可以調用原來的API就來生成的話,要去定義這么多個帶標題的view,這樣做下來心裡肯定是很糾結的。

標題下面的藍色的線,並不是在Dialog或AlertDialog中設置或通過它們的style中定義的。它是定義在各種風格的dialog的layout當中,然後再在AppTheme裡面指定dialog的對應屬性。遺憾的是,目前我看到這幾個相關屬性還不是public的,不能自己設置,所以只有通過java代碼來實現了。

表示這條藍色的線的叫做titleDivider,我們可以通過getResources()的API來獲取它的IP,然後設置顏色。代碼如下:

?

public static final void dialogTitleLineColor(Dialog dialog, int color) {

Context context = dialog.getContext();

int divierId = context.getResources().getIdentifier("android:id/titleDivider", null, null);

View divider = dialog.findViewById(divierId);

divider.setBackgroundColor(color);

安卓開發中 怎麼獲取theme

在Android 開發中全屏顯示的方式有帆拿段三種,分別介紹如下: 1、在Activity中進行設置,代碼如下: getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); 此行代碼必須寫在Activity指定布局文件之前,否則會報錯誤。 2、在android項目的主配置文件的application的屬性中設置,設置方式一: android:theme="@android:style/Theme.NoTitleBar.Fullscreen" 3、在android項目的主態譽配置文件的application的屬性中設置,設置方敏塵式二: android:theme="@style/fullscreem"。

③ Android中style和theme的區別

Theme 和Style資源,桐滾將一些通用的屬性提取出來,方便使用。

相同:
Theme和Style位於values文件夾下styles.xml下,格式相同。

[java] view plain
<style name="MyTransparent">
<item name="android:windowBackground">@color/transparent_background</item>
<item name="android:windowIsTranslucent">true</item>
<item name="android:windowNoTitle">true</item>
</style>
<item name="Android:windowNoTitle">?android:windowIsTranslucent</item>其中 問號表示引用本主題中已經定義過的資源的值。

在需要使用的時候調用

[java] view plain
<EditText
android:id="@+id/nameEdit"
<span style="color:#ff0000;"> style="@style/LoginOrRegisterEditStyle"</span>
android:hint="@string/input_real_name"
android:layout_below="@id/tipHead"
android:layout_marginTop="20dp" />

不同:
Theme在AndroidManifest.xml中德Application節點或者Activity節點設置android:theme,或者在對應Activity中通過代碼設置setTheme(),影響整個應用或者一個Activity.
Style一般是在布局中的View中設置。搜早影響單個View,如EditText,TextView等等。

如果主題和樣式屬性有沖突,樣式局漏余的屬性高於主題。

如果需要使用系統自帶的主題

[java] view plain
android:theme=<span style="color:#ff0000;">"@android:style</span>/Theme.Light.NoTitleBar"

④ 在android中怎樣設計theme

在style中定義,也可以在values文件中談檔者定一個theme.xml,然後在這個xml中定義。蠢跡
哪需要用直接引用含薯就OK

⑤ android怎樣在代碼中設置顏色

通常來說,每個界面都對應一個activity。而在activity的View視圖中,可以在最外層容器去設置背景圖片或背景顏色。
在xml布局裡:
android:background="@drawable/img1"
或者
android:background="@color/white"
在java代碼里,也可以設置

layout.setBackgroundColor(R.color.white);
layout.setBackgroundDrawable(drawable);
layout.setBackgroundResource(R.drawable.img1);

再者,系統默認的背景色是能過theme來控制的,就是說創建一個activity的背景色,如果在
AndroidManifest.xml文件里有設置如下:
android:theme="@android:style/Theme"
這樣設置activity的主題樣式,"@android:style/Theme"一般是系統默認的。這個不單是背景色,還有其它的樣式,具體可以在網上查一下android:theme的用法。

而"@android:style/Theme"的背景色就是黑色。

⑥ 安卓怎麼修改系統「DIALOG」風格

具體步驟如下:

1編寫一個文本樣式。

DIALOG的標題是一個textview,在sytles.xml中,添加如下代碼來設置你自己的文本樣式:

<style name="DialogWindowTitle">
<item name="android:textSize">22sp</item>
<item name="android:textColor">@color/font_dark_grey</item>
</style>

2設置對話框的標題主題。

上面的標題文本並不能直接設置譽笑緩為對話框的標題樣式。 我們還需要編寫一個表示標題的主題的style,在這里指定標題的文本樣式慶模。代碼如下:

<style name="DialogWindowTitle.DeviceDefault">
<item name="android:maxLines">1</item>
<item name="android:scrollHorizontally">true</item>
<item name="android:textAppearance">@style/DialogWindowTitle</item>
</style>

3設置對話框主題。

接下來,我們編寫我們的對話框主題,在這里指定標題的主題。由於一些屬性並不是public的,所以我們需要繼承自原來的某個style,代碼如下:

<!--Dialog主題-->
<style name="Theme.DeviceDefault.Dialog" parent="@android:style/Theme.DeviceDefault.Light.Dialog">
<item name="android:windowTitleStyle">@style/DialogWindowTitle.DeviceDefault</item>
</style>

4自定義App的主題。

接下來,我們需要在我們的App theme中指定我們的對話框使用這種主題,所以需要定義一個App theme。同樣由於App theme的許多屬性並不是public的(比如下面要提到的標題下面的那條藍線),所以我們要繼承自一個原生的style。這里我根據程序需要選擇了Theme.Holo.Light.NoActionBar,代碼如下:

<style name="ParkingTheme" parent="@android:style/Theme.Holo.Light.NoActionBar">
<item name="android:dialogTheme">@style/Theme.DeviceDefault.Dialog</item>
</style>

5指定App主題

我們需要在升顫AndroidManifest.xml文件中,指定我們的app主題。這步很簡單,只需要在application標簽中指定android:theme的值即可,如下:

android:theme="@style/ParkingTheme"

6編寫AlertDialog主題。

我們無法直接繼承系統主題里的AlertDialog的style。如把parent指定為Theme.DeviceDefault.Dialog.Alert,Theme.Holo.Dialog.Alert,Theme.DeviceDefault.Light.Dialog.Alert或Theme.Holo.Light.Dialog.Alert,都會導致編譯不過。所以我們需要繼承自Dialog的style。在這里我以Theme.Holo.Light.Dialog為例,代碼如下:

<!--AlderDialog主題-->
<style name="Theme.DeviceDefault.Dialog.Alert" parent="@android:style/Theme.Holo.Light.Dialog">
<item name="android:windowBackground">@android:color/transparent</item>
<item name="android:windowTitleStyle">@style/DialogWindowTitle.DeviceDefault</item>
<item name="android:windowContentOverlay">@null</item>
<item name="android:windowMinWidthMajor">@android:dimen/dialog_min_width_major</item>
<item name="android:windowMinWidthMinor">@android:dimen/dialog_min_width_minor</item>
</style>

7指定AlertDialog的主題。

我們需要在第4步所說的自定義的AppTheme中,添加一行代碼來指定要使用的AlertDialog的style,代碼如下:

<item name="android:alertDialogTheme">@style/Theme.DeviceDefault.Dialog.Alert</item>

8修改標題下面的藍色線。

表示這條藍色的線的叫做titleDivider,我們可以通過getResources()的API來獲取它的IP,然後設置顏色。代碼如下:

public static final void dialogTitleLineColor(Dialog dialog, int color) {
Context context = dialog.getContext();
int divierId = context.getResources().getIdentifier("android:id/titleDivider", null, null);
View divider = dialog.findViewById(divierId);
divider.setBackgroundColor(color);

這行代碼對於自定義的Dialog,可以在setContentView之後調用。但是對於AlertDialog,必須在show()方法被調用之後才可以去調用,否則會報錯。

⑦ 如何在 Android 應用程序中使用自定義主題

該指南介紹了Android的holo主題,並提供了一個既有現代感又獨特的用戶體驗。從今年的谷歌開發者大會談論的「 成功的Android設計」上,我們得到了一些重要的心得:
對於這篇文章,我假設你已經有「成功設計」的部分,所以讓我們走進更高一層的「應用涅槃」。更具體地說,我將描述一些有用的模式應用到你的應用程序中,讓你的應用更具品牌化。
簡單樣式 在Android中,定義外觀最簡單的方式是直接設置屬性在視圖對象上。由於要對整個應用程序設置樣式,這種方法就顯得不是很方便了。因此,我們可以創建樣式來綁定視圖屬性。但要注意的是,樣式只能設置在xml里。這意味著,我們在創建/載入視型備中圖的時候,只能一次設置一個樣式。下面是如何在res/values/styles.xml文件中給TextView設置屬性的示例。
<style name="CustomText" parent="@android :style/TextAppearance.Medium"> <item name="android:textSize">20sp</item> <item name="android:textColor">#008</item> </style> 我們引用@style/CustomText樣式應用在我們的layout.xml文件中。該樣式引用了一個父樣式 @android:style/TextAppearance.Medium。由於開始樣式引自android: 命名空間,那麼我們這個樣式默認也隨android平台。
創建主題綁定樣式 假設我們要改變我們所有TextView的文字大小和顏色,並且不需要明確設置每一個TextView。這是一個非常常見的情況,幸運的是,Android提供了一個非常強卜山大的主題機制。從本質上講,主題就是樣式資源本身,使用「key」指向具體的樣式。一個視圖對象基於這個key可以查看到具體的樣式。下面是一個簡單的例子,在res/values/themes.xml文件:
<style name="Theme.MyApp" parent="滾鋒@android :style/Theme.Holo"> <item name="android:textAppearance">@style/CustomText</item> </style> 如上所述,主題是樣式資源本身,所以我們聲明一個Theme.App繼承自Android平台提供的holo主題。我們將我們的CustomText樣式指定到android:textAppearance屬性。屬性就是一個預定義的「變數」,它可以被其他資源元素引用。事實上,它也可以創建自定義屬性在res/values/attr.xml文件。
現在有趣的事情來了。我們的主題Theme.MyApp不僅可以通過AndroidManifest.xml的設置應用到Activity上,它也可以在運行時在代碼中設置。你將不得不重新啟動當前Activity(或使用ContextWrapper應用UI的主題部分),但它使主題更加動態。
final Resources.Theme theme = context.getTheme(); TypedArray a = theme.obtainStyledAttributes(attrs, com.android.internal.R.styleable.TextViewAppearance, defStyle, 0); int ap = a.getResourceId(com.android.internal.R.styleable.TextViewAppearance_textAppearance, -1); TypedArray appearance = theme.obtainStyledAttributes(ap, com.android.internal.R.styleable.TextAppearance); textColor = appearance.getColorStateList(attr); 該代碼片段顯示了文本的顏色是如何從當前主題的TextAppearance屬性提取出來的。通過閱讀這段初始化代碼,我們通常可以知道什麼樣的元素可以被配置。
我們必須意識到,雖然不同的Android版本應用不同的屬性,但Android高版本通常支持低版本的屬性,新屬性顯然不被低版本識別。我希望我們會很快得到更新檢查,這樣就能引用Android新版本推出的主題屬性。
總結 Android4.0的主題變得更加強大了,98%屬性你可以通過代碼設置,並且現在可以在主題化之前設置樣式。使用自定義主題時,除了有更大的視覺靈活性,你還可以減少在XML布局和Java代碼中的混亂,完全可以投入到應用程序的邏輯。

⑧ Android設置Activity背景為透明style的方法

1.設置Theme.Translucent

只需要在Manifest中需要透明的Activity內設置theme為以上任意一個就可以了

2.在Activity的layout.xml文件中,設置父布局背景透明度(不設置背景色默認全透明),不設置透明度看不出效果,如果子控制項設置了背景色且不透明,則子談毀控制項所佔位置無透明效果。

3.效果圖

1.使用自定義的Theme

2.在res-values-styles.xml中添加MyTransparent

3.在res-values-colors.xml中添加透明顏色值含鬧備

4.以上步驟設置完成和方法一有同樣的效果,省去了在layout.xml設置透明背景色(如果在布局中頁設置彎陵了背景色,將以布局中的為准)。方法二相對靈活一點,可以多設置一些屬性,如模糊背景:

⑨ Android 的style和theme

例子

Theme是針對窗體級別的,改變窗體樣式;
Style是針對窗體元素級別的,改變指襪仿定控制項或者Layout的樣式

簡單的說就是Theme裡面有包含了好多好多Style

常用於Toolbar下

比如

android:theme="@style/AppTheme.AppBarOverlay設置了Toolbar的主題
app:popupTheme="@style/AppTheme.PopupOverlay"設置了Toolbar節點下的view的主題

默認瞎好簡情況下我們使用theme為android:Theme.Holo.Light.DarkActionBar那麼ActionBar文字是白的,ActionBar Overflow彈出的是黑底白字,如果需求是白磨褲底黑字那麼只要設置toolbar的app:popupTheme="ThemeOverlay.AppCompat.Light"

附上一張官方的

裝載自 關於Android的style和theme

閱讀全文

與android代碼中設置theme相關的資料

熱點內容
藏文軟體app怎麼可以下載 瀏覽:960
鍵盤文件名 瀏覽:538
電腦自帶驅動在那個文件夾 瀏覽:531
c窗體讀取文件夾 瀏覽:965
asp婚紗攝影網站 瀏覽:684
文件恢復的原理 瀏覽:828
移動硬碟清空怎麼恢復數據 瀏覽:433
文件保存電腦桌面英文 瀏覽:128
debian共享文件夾 瀏覽:633
平安易貸不用app怎麼審核 瀏覽:883
如何學習編程環境 瀏覽:335
榮耀6升級60 瀏覽:281
如何點擊移動數據開啟 瀏覽:95
javajdbcmysql增刪改查 瀏覽:844
新的熔點儀為什麼測不出來數據 瀏覽:364
淘寶滾動海報代碼 瀏覽:953
如何查看本機sdk版本 瀏覽:678
lua2進制文件 瀏覽:710
除了plc編程還有什麼技巧 瀏覽:320
電視無線網路已關閉如何開啟 瀏覽:430

友情鏈接