当前位置: 首页 > 知识库问答 >
问题:

如何使用最新的AppCompat着色按钮

唐健
2023-03-14

我需要知道使用最新的AppCompat(目前为23.2.1)为材质按钮(AppCompatButton)着色的最佳(推荐)方法是什么。我从来没有想到会如此令人沮丧!我尝试了这里的大多数答案,但要么不起作用,要么产生了意想不到的结果。

我需要保持与api的向后兼容性

如果您能同时提供xml和java代码,我将不胜感激。

共有1个答案

西门振
2023-03-14

有很多方法可以做到这一点。我最喜欢的是以下几点:

<Button
 android:id="@+id/activity_main_some_button"
 android:layout_width="wrap_content"
 android:layout_height="wrap_content"
 style="@style/Widget.AppCompat.Button.Colored"
 android:text="This is a button" />  

这会自动使用您(希望)在主题中设置的强调色为按钮着色,同时在API中保持按下状态

如果其他方法都不起作用,您可以自己按一下按钮:

AppCompatButton myExampleButton = new AppCompatButton(getContext());

myExampleButton.setSupportBackgroundTintList(ContextCompat.getColorStateList(getContext(),
                                             R.color.some_color));

使现代化

可以执行以下操作以使用自定义颜色:

<style name="MyButtonTheme" parent="Widget.AppCompat.Button.Colored">
    <item name="colorButtonNormal">@color/someColor</item>
</style>

使用所需颜色定义新样式。

<Button
 android:id="@+id/activity_main_some_button"
 android:layout_width="wrap_content"
 android:layout_height="wrap_content"
 android:theme="@style/MyButtonTheme"
 android:text="This is a button" />

将其设置为您的按钮。

 类似资料:
  • 有人知道如何更改按钮颜色吗? 但是一个特定的按钮,而不是应用程序的所有按钮都使用XML。 即使使用AppCompat库,android:backgroundTint属性在Lollipop前也不起作用。只有主题中的彩色按钮normal可以在Lollipop前使用。 这是真的吗?真遗憾 我正在使用这个可绘制的按钮(简单的绿色),但当我使用按钮时,发现它比普通按钮高。 这是btn\u green文件。x

  • 我使用此样式更改的背景颜色: 在布局中: 它起作用了。但是当我在这个上调用时,它保持相同的颜色。我怎么处理这个案子?

  • 我尝试使用背景属性为图像着色,如下所示: http://jsfiddle.net/6ELSF/1047/ 但是图像并不像预期的那样“有色”。 悬停时,它看起来像这样: 但我希望它看起来像这样: 我试着测试一些我发现的关于图像叠加的解决方案,但在我的示例中都不起作用。如何以最简单的方式实现这一点?

  • 我有一个,它是一个全黑的小符号。正在我拥有的自定义子类中设置。是否有可能让图像对其应用,从而代替黑色图像将颜色更改为的任何颜色? 我只是想避免创造新的资产。

  • 问题内容: 我必须创建一个简单的2D动画,而无需为此使用各种图元来绘制线,圆等。必须通过操纵像素并实现通过对像素着色来绘制线,圆等的算法之一来完成。 我曾考虑为此目的使用Turbo C,但我使用ubuntu。因此,我尝试使用dosbox安装和运行turbo C,但无济于事。 现在,我唯一的选择是Java。是否可以在Java中操作像素?我找不到适合自己的好教程。如果可以提供相同的示例代码,那将是很好

  • 我正在用OpenGL(PyOpenGL和Python)显示几何图形(文件格式:.stl)。几何数据具有形式,由三角形组合而成。 我保存到 VBO 数据;顶点、法线和颜色。由于法线仅每 3 个顶点(三角形)定义,并且我为每个顶点定义颜色矢量,因此 VBO 中的数据具有以下形式: 大写:;首先我保存所有顶点,然后我“附加”(使用)所有法线(法线数比顶点数和顶点颜色少3倍),然后我附加每个顶点的颜色向量