android - 为 android 无边框按钮添加样式 (android 4.0+)

标签 android android-layout button styles android-xml

我想为无边框按钮添加边框。但是,如果我使用父 borderlessbutton 创建自己的样式并覆盖背景标签,我会丢失状态更改动画等,因为这也是由背景定义的。我也无法自己实现它们,因为 native android 可绘制对象不可公开使用,因此无法访问。我不想复制可绘制对象。 是否只能以编程方式覆盖 ondraw 还是我缺少基于 xml 的解决方案? (顺便说一句,这是一个元素周期表,所以这不应该涉及为每个按钮创建一个 xml 文件,因为它们大约有 100 个) 谢谢 斯蒂芬

最佳答案

其中大部分来自 this article .

做这样的事情有 4 个步骤:

  1. 创建一个包含状态的 XML 文件。
  2. 为每个州创建一个 XML 文件(或背景)
  3. 创建按钮的样式
  4. 将按钮添加到您的布局,并查看它的外观。

最困难的事情是第一步,所以我会在这里展示。对于其他的,您可以访问该站点或执行您自己的操作。本质上,它看起来像这样。基本上需要捕获所有 4 个状态。这应该保存在 drawable 文件夹中,这个名称就是您的应用程序将用作 drawable 名称的名称。

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

<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item
        android:state_enabled="false"
        android:drawable="@drawable/loc_for_button_disabled" />
    <item
        android:state_pressed="true"
        android:state_enabled="true"
        android:drawable="@drawable/loc_for_button_pressed" />
    <item
        android:state_focused="true"
        android:state_enabled="true"
        android:drawable="@drawable/loc_for_button_focused" />
    <item
        android:state_enabled="true"
        android:drawable="@drawable/loc_for_button_enabled" />
</selector>

关于android - 为 android 无边框按钮添加样式 (android 4.0+),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14010870/

相关文章:

android - 向后兼容的 Android 应用程序?

android - 是否需要为所有dpi文件夹提供图像?

android - imagebutton 中 setEnabled 的问题

iphone - 在相机覆盖层上使用标准相机按钮 (iPhone)

Android onMenuItemClick() - 检测点击了哪个菜单?

android - 回收位图 Ice Cream Sandwich 强制关闭

java - 整数和字符串 TCP 连接

android - 尝试在单击 AlertDialog 按钮时显示 Toast 时应用程序崩溃(在 fragment 中)

android - 如何像在 Google map 应用中一样将 Android 工具栏菜单/图标向左对齐?

java - 在圆形 JLabel 图像周围创建可点击区域