簡體   English   中英

Android - 默認按鈕樣式

[英]Android - default button style

問題:在哪里可以找到帶有十六進制顏色代碼的默認樣式xml?

我正在尋找Style'buttonStyle'和其他默認樣式影響像TextViews,Buttons等方面(如果你不改變方面的風格)

我抬頭看了<instalation_folder>\\android-sdk\\platforms\\android-<versio>\\data\\res\\values<instalation_folder>\\android-sdk\\platforms\\android-<version>\\data\\res\\colors但是我沒有實際上找不到我要找的東西。

希望我的問題很明確。


由於聲譽低,我無法回答這個問題。 這是答案

回答

通過一些谷歌搜索,我發現'buttonStyle'實際上是'Widget.Button' - 使用默認設置Android的樣式

這是它的工作原理:

  • 正如我所說'buttonStyle'風格是在\\android-sdk\\platforms\\android-<version>\\data\\res\\values\\styles.xml定義的'Widget.Button'樣式。 背景設置為: @android:drawable/btn_default
  • \\android-sdk\\platforms\\android-<version>\\data\\res\\drawable\\btn_default.xml將按鈕的背景顏色定義為選擇器。 顏色實際上取決於按鈕的狀態。 默認顏色設置為@drawable/btn_default_normal
  • 通過一些搜索我發現,btn_default_normal是位於\\android-sdk\\platforms\\android-<version>\\data\\res\\drawable-mdpi png圖像

我發現它有點令人困惑,但我希望它會幫助某人,也許......

了解Android風格的工作原理可能有點混亂。

基於一個例子,我將嘗試解釋基本工作流程的方式。

假設您想知道按鈕的默認背景是什么。 這可以是簡單的顏色(不太可能)或可繪制的(有許多不同類型的可繪制的)。

Android有主題。 主題基本上定義了哪個樣式應用於哪個小部件。 因此,我們的第一步是找到默認的android主題。

你可以在android-sdk\\platforms\\android-15\\data\\res\\values\\themes.xml下找到它

在此主題文件中,搜索button

你會發現這樣的事情:

<!-- Button styles -->

<item name="buttonStyle">@android:style/Widget.Button</item>

這意味着主題將樣式Widget.Button應用於按鈕。

好的,現在讓我們找到風格Widget.Button

所有默認的Android風格都在文件android-sdk\\platforms\\android-15\\data\\res\\values\\styles.xml

現在搜索Widget.Button

你會發現這樣的事情:

<style name="Widget.Button">
    <item name="android:background">@android:drawable/btn_default</item>
    <item name="android:focusable">true</item>
    <item name="android:clickable">true</item>
    <item name="android:textAppearance">?android:attr/textAppearanceSmallInverse</item>
    <item name="android:textColor">@android:color/primary_text_light</item>
    <item name="android:gravity">center_vertical|center_horizontal</item>
</style>

有趣的是:

<item name="android:background">@android:drawable/btn_default</item>

這意味着有一個名為btn_default的drawable設置為按鈕背景。

現在我們需要在android-sdk\\platforms\\android-15\\data\\res下的一個可繪制文件夾中找到一個名為btn_default.*的文件。

這可以是圖像(非常不可能),也可以是像btn_default.xml這樣的xml文件。

經過一點點搜索,你會發現文件android-sdk\\platforms\\android-15\\data\\res\\drawable\\btn_default.xml

它包含這樣的東西:

<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_window_focused="false" android:state_enabled="true" android:drawable="@drawable/btn_default_normal" />
    <item android:state_window_focused="false" android:state_enabled="false" android:drawable="@drawable/btn_default_normal_disable" />
    <item android:state_pressed="true" android:drawable="@drawable/btn_default_pressed" />
    <item android:state_focused="true" android:state_enabled="true" android:drawable="@drawable/btn_default_selected" />
    <item android:state_enabled="true" android:drawable="@drawable/btn_default_normal" />
    <item android:state_focused="true" android:drawable="@drawable/btn_default_normal_disable_focused" />
    <item android:drawable="@drawable/btn_default_normal_disable" />
</selector>

現在您必須了解這是一個可繪制的選擇器(許多可繪制類型之一)。 此選擇器根據按鈕狀態選擇不同的背景。 例如,如果按下按鈕,則它具有不同的背景。

不,讓我們看看默認狀態。

<item android:state_enabled="true" android:drawable="@drawable/btn_default_normal" />

它應用了一個名為btn_default_normal的drawable。

現在我們需要找到這個可繪制的。

同樣,我們需要在android-sdk\\platforms\\android-15\\data\\res下的一個可繪制文件夾中找到一個名為btn_default_normal.*的文件。

這可以是圖像或像btn_default_normal.xml這樣的xml文件。

您將在不同的可繪制文件夾中找到多個名為“btn_default_normal.9.png”的文件,以用於不同的分辨率。

:)現在您知道btn_default_normal.9.png被設置為按鈕背景。

在XML中聲明時,可以找到android小部件的默認樣式:

style="@android:style/Widget.Button" - standard Button
style="@android:style/Widget.TextView" - standard TextView

例如,這是默認按鈕的樣式:

    <style name="Widget.Button">
        <item name="android:background">@android:drawable/btn_default</item>
        <item name="android:focusable">true</item>
        <item name="android:clickable">true</item>
        <item name="android:textAppearance">?android:attr/textAppearanceSmallInverse</item>
        <item name="android:textColor">@android:color/primary_text_light</item>
        <item name="android:gravity">center_vertical|center_horizontal</item>
    </style>

默認按鈕的背景:

<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@drawable/btn_default_normal" android:state_enabled="true" android:state_window_focused="false"/>
    <item android:drawable="@drawable/btn_default_normal_disable" android:state_enabled="false" android:state_window_focused="false"/>
    <item android:drawable="@drawable/btn_default_pressed" android:state_pressed="true"/>
    <item android:drawable="@drawable/btn_default_selected" android:state_enabled="true" android:state_focused="true"/>
    <item android:drawable="@drawable/btn_default_normal" android:state_enabled="true"/>
    <item android:drawable="@drawable/btn_default_normal_disable_focused" android:state_focused="true"/>
    <item android:drawable="@drawable/btn_default_normal_disable"/>
</selector> 

您可以在任何圖形編輯器的幫助下獲得默認顏色:路徑默認按鈕NinePatch .. \\ android-sdk \\ platforms \\ android-13 \\ data \\ res \\ drawable-hdpi

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM