当前位置: 首页 > 面试题库 >

Android-默认按钮样式

方航
2023-03-14
问题内容

问题: 在哪里可以找到带有十六进制颜色代码的默认样式xml?

我在寻找’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”样式恰好是在中定义的“ Widget.Button”样式\android-sdk\platforms\android-<version>\data\res\values\styles.xml。背景设置为:@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

我觉得有些困惑,但我希望它能对某人有所帮助,也许…


问题答案:

了解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_defaultset 的可绘制对象作为按钮背景。

现在,我们需要btn_default.*在中的一个可绘制文件夹中找到一个名为的文件android- sdk\platforms\android-15\data\res

这可以是图像(非常不可能)或xml文件(例如)btn_default.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

现在我们需要找到该可绘制对象。

同样,我们需要btn_default_normal.*在中的一个可绘制文件夹中找到一个名为的文件android- sdk\platforms\android-15\data\res

可以再次是图像或XML文件(例如)btn_default_normal.xml

在不同分辨率的不同可绘制文件夹中,您会找到多个名为“ btn_default_normal.9.png”的文件。

:)现在,您知道将btn_default_normal.9.png其设置为按钮背景。



 类似资料:
  • 问题内容: 您如何以编程方式向Android按钮添加/删除样式?是否可以在运行时应用样式? 我有两个看起来像这样的按钮 我想做的是单击一个按钮时(让我们说按钮B),它运行一些代码,然后将按钮B的样式更改为其他样式(即突出显示的边框),并且将是这样的: 我知道如何在XML中进行样式设置(即创建样式),我只想知道如何在运行时/使用Java代码应用样式。 问题答案: 让我们为您编写一些案例代码::)为了

  • 我正在尝试在styles.xml中默认应用按钮文本颜色 如何使样式更改按钮的颜色,并在整个应用程序中应用?我的主要节日包括: 这将更改所有文本(如TextView),但不会更改按钮中的文本。如果我使用上面的ColorThemes样式,并将其放在按钮的xml中,如下所示: 那它就完美地工作了。为什么由于风格的原因,这并不普遍适用?所有不同版本的styles.xml都有相同的代码。

  • 我对材料设计的纽扣样式感到困惑。我想要得到彩色凸起的按钮,像在附加的链接。,像“强制停止”和“卸载”按钮下看到的用法部分。是否有可用的样式或我需要定义它们? http://www.google.com/design/spec/components/buttons.html#按钮-用法 我找不到默认按钮样式。 示例: 如果我尝试通过添加 所有的样式都消失了,如触摸动画,阴影,圆角等。

  • 设置全局默认样式,将会影响所有写入单元格的样式; 函数原型 defaultFormat(resource $formatHandler) resource $formatHandler $config = ['path' => './tests']; $excel = new \Vtiful\Kernel\Excel($config); ​ $excel->fileName('tutorial

  • 问题内容: 我有一个包含三个提交按钮的表单,如下所示: 按钮行混合了提交,重置和JavaScript按钮。按钮的顺序可能会更改,但是在任何情况下,保存按钮都将保留 在上一个和下一个按钮之间。 这里的问题是,当用户点击Enter提交表单时,帖子变量“ COMMAND”包含“ Prev”;正常,因为这是表单上的第一个提交按钮。但是,我希望在用户通过Enter按钮提交表单时触发“下一步” 按钮。这有点像

  • 本文向大家介绍javascript为按钮注册回车事件(设置默认按钮)的方法,包括了javascript为按钮注册回车事件(设置默认按钮)的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了javascript为按钮注册回车事件(设置默认按钮)的方法。分享给大家供大家参考。具体如下: 首先不得不说,在JS方面,自己真的是个不折不扣的菜鸟。对于JS以及一些JS框架如JQuery等JS框架,自