具有不同背景和突出显示颜色的凸起和平按钮

2023-11-30

我正在使用创建应用程序com.android.support:appcompat-v7:23.0.1图书馆。

我在中定义应用程序主题values/styles.xml:

<style name="BaseAppTheme" parent="Theme.AppCompat.Light.NoActionBar">
    <item name="colorPrimary">@color/primary</item>
    <item name="colorPrimaryDark">@color/primary_dark</item>
    <item name="colorAccent">@color/accent</item>
    <item name="colorControlHighlight">@color/highlight_dark</item>
    <item name="colorButtonNormal">@color/primary</item>
    <item name="android:textColorPrimary">@color/primary_text</item>
    <item name="android:textColorSecondary">@color/secondary_text</item>
</style>

<style name="AppTheme" parent="BaseAppTheme"></style>

我使用AppCompatWidget.AppCompat.Button.Colored凸起按钮和的样式Widget.AppComap.Button.Borderless.Colored平面按钮的样式。

colorAccenttheme 属性定义了凸起按钮背景颜色和平面按钮文本颜色,但我认为这是一个错误,因为这些颜色应该由colorButtonNormal属性,就像它的作用一样Widget.AppCompat.Button and Widget.AppComap.Button.Borderless styles.

colorControlHighlight主题属性定义ripple两个按钮的颜色。

问题是:

  1. 如何使用不同颜色的凸起按钮?例如,我想要带有主色和强调色的按钮。
  2. 我的强调色不浅,所以凸起的按钮具有饱和的背景和colorControlHighlight应该是轻的(#40ffffff)。但平面按钮有透明背景colorControlHighlight应该是黑暗的(#40000000) 为了它。如何设置不同ripple凸起和平按钮的颜色?

我在下面添加了当前的解决方案,但我不禁觉得我错过了一些东西。


经过一些研究和谷歌搜索后,我为不同的凸起和平按钮定义了单独的主题:

<style name="AppTheme.RaisedButton">
    <item name="buttonStyle">@style/Widget.AppCompat.Button.Colored</item>
</style>

<style name="AppTheme.RaisedButton.Primary">
    <item name="colorAccent">@color/primary</item>
</style>

<style name="AppTheme.RaisedButton.Accent">
</style>

<style name="AppTheme.FlatButton">
    <item name="buttonStyle">@style/Widget.AppCompat.Button.Borderless.Colored</item>
    <item name="colorControlHighlight">@color/highlight_light</item>
</style>

<style name="AppTheme.FlatButton.Primary">
    <item name="colorAccent">@color/primary</item>
</style>

<style name="AppTheme.FlatButton.Accent">
</style>

请注意,我正在使用buttonStyle属性不android:buttonStyle因为它不适用于棒棒糖之前的设备。

使用这些主题android:theme属性:

<Button
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="@string/my_button"
    android:theme="@style/AppTheme.FlatButton.Primary" />
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

具有不同背景和突出显示颜色的凸起和平按钮 的相关文章

随机推荐

  • 映射 servlet 来满足我的请求

    我想映射一个 servlet 来服务包含 app 并以 html 结尾的请求 如下所示
  • 使用 GSON 加载非常重的流

    我正在尝试读取非常重的 JSON 超过 6000 个对象 并将它们存储在哈希映射上 以便稍后将其插入到我的数据库中 但问题是我面临 OOM 这是我沉重的 JSON 造成的 但是 GSON 库应该让我摆脱这种情况 但事实并非如此 有任何想法吗
  • 获取默认选择颜色?

    I can change theCSS选择颜色 但我怎样才能get浏览器 操作系统默认选择以便我可以在其他地方使用它 例如在 Ubuntu Chrome 上 文本以橙色突出显示 我想将同样的风格应用到 li 当我用鼠标悬停在它上面时 CSS
  • 全局检测触摸

    我试图弄清楚如何解决这个 相当 简单的问题 但我失败得很惨 所以我真的需要你的建议 我的应用程序由一个带有多个选项卡的 uitabbar 组成 在其中一个中 我有一堆 UIImageView 每个视图代表图片的缩略图 类似地 当您通过按住应
  • 在C++中,为什么指针转换时地址会改变?

    以下是代码 include
  • 使用现有基类对象创建派生类对象?

    是否有可能 或快速解决方法 创建定义为派生类的对象 而无需在内存中创建基类对象 相反 派生对象应该引用基类实际存在的对象 接管 其内存驻留 出于速度原因 这是需要的 创建新的派生对象 将数据从基类对象复制到它 然后销毁基对象需要太多时间 在
  • Java ArrayList.add() 方法对于纯并行添加线程安全吗? [复制]

    这个问题在这里已经有答案了 考虑一个函数的 for 循环 该函数接受 ArrayList 引用并向该 ArrayList 添加一个对象 我现在想并行执行每个函数调用 如果我不关心对象添加的顺序并且没有函数读取或操作任何 ArrayList
  • Google App Engine - 将 Blobstore API 与 Google Cloud Storage 结合使用

    我必须存储大小超过 1MB 的文件 谷歌应用程序引擎建议我应该将它们存储在谷歌云存储中 应用程序引擎 BlobProperty 不适合 这部分将 Blobstore API 与 Google Cloud Storage 结合使用建议使用 c
  • Microsoft 语音识别 setInputToDefaultAudioDevice 引发异常

    大家好 我在 MS 语音识别方面遇到了麻烦 我的代码很简单 static void init string enUsEngine string Empty foreach RecognizerInfo ri in SpeechRecogni
  • Office Starter 是否包含 Microsoft.Office.Interop 的 DLL?

    我想使用 Microsoft Office Interop Excel 从 XLS 文件中提取一些数据 我安装了 Visual Studio 2010 和 Office 开发人员工具 但是 我在以下位置收到 COMException 错误v
  • Jekyll 链接集合中的文档?

    在 Jekyll 的 Front Matter 中 有没有办法引用另一个文档 我有一个自定义集合 并且想在每个文档中添加元数据 例如 父主题 指向父主题的链接 和 子主题 文档数组 或 相关主题 通过这样的引用 我可以访问链接文档的元数据
  • 修改组件的状态然后调用“setState(this.state)”是一个好习惯吗?

    我正在使用 ReactJS 我有一个有状态组件 秒表容器 和多个无状态子组件 秒表 在外部组件中 我正在做这样的事情 the outer component is a container for multiple stopwatches t
  • 使用 window.onload 使用 Javascript 进行表单验证

    你好 我真的很困惑 因为我是一个 javascript 初学者 这让我很困惑 有人知道如何编写以下 javascript 表单验证吗 我确信这很简单 但我想不出这个来救我的命 感谢您分享您的知识 我需要在没有 jquery 的情况下编写以下
  • 是否可以在没有实体的情况下使用 JpaRepository ?

    是否可以使用JpaRepository没有实体 在这种情况下 将其替换为 DTO 如下示例 Repository public interface BffRepository extends JpaRepository
  • 从另一个 Stencil JS 库导入 Stencil JS 库

    我有两个 Stencil JS Web 组件库 library a 和library b 这些不是应用程序 只是单独的 npm 组件包 我想使用library a 和library b 中的一些组件 如何将组件从 A 导入到 B 中 Ste
  • 在Python中交换列表中的元素

    我有一个列表 我需要将列表中的第一个元素与列表中的最大元素交换 但为什么代码 1 可以工作 而代码 2 却不能 code 1 a list index max list list 0 list a list a list 0 code 2
  • 让用户使用 VBA 单击单元格作为 Excel 输入框的输入

    我有一个将用户输入存储到变量中的输入框 用户输入的输入是手机号码 例如 弹出输入框询问用户 您想从哪里开始 然后 用户可以输入 A4 或他们想要启动的任何单元格 我的问题是 有没有办法允许用户物理单击单元格 A4 而不是键入它 预先感谢您的
  • 浏览器 cookie 中的 ASP.NET MVC TempData

    我正在尝试使用自定义ITemp数据提供者提供者到存储TempData在浏览器的 cookie 而不是会话状态中 但是 一切工作正常 只是我无法在读取 cookie 后将其从响应流中删除 有任何想法吗 谢谢 public class Cook
  • “多重不等式约束” - 使用 R nloptr 包进行最小化

    有没有办法定义多个 不平等约束 nloptrR 中的包 不等式函数需要有五个不等式约束 矩阵的 colsum 从整数向量堆叠 这就是我实现它的方法 constraint func lt function my data var column
  • 具有不同背景和突出显示颜色的凸起和平按钮

    我正在使用创建应用程序com android support appcompat v7 23 0 1图书馆 我在中定义应用程序主题values styles xml