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

如何以编程方式添加按钮色调

鱼志学
2023-03-14

在新的 AppCompat 库中,我们可以按以下方式对按钮进行着色:

<Button
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:text="@string/follow"
    android:id="@+id/button_follow"
    android:backgroundTint="@color/blue_100"
    />

如何在代码中以编程方式设置按钮的色调?我基本上尝试根据一些用户输入实现按钮的条件着色。

共有3个答案

赖淇
2023-03-14

似乎视图有自己的色调管理机制,所以最好放在色调列表中:

ViewCompat.setBackgroundTintList(
    editText, 
    ColorStateList.valueOf(errorColor));
羊舌涵涤
2023-03-14

您可以使用

button.setBackgroundTintList(ColorStateList.valueOf(resources.getColor(R.id.blue_100)));

但我建议您使用昨天刚刚发布的支持库可绘制着色:

Drawable drawable = ...;

// Wrap the drawable so that future tinting calls work
// on pre-v21 devices. Always use the returned drawable.
drawable = DrawableCompat.wrap(drawable);

// We can now set a tint
DrawableCompat.setTint(drawable, Color.RED);
// ...or a tint list
DrawableCompat.setTintList(drawable, myColorStateList);
// ...and a different tint mode
DrawableCompat.setTintMode(drawable, PorterDuff.Mode.SRC_OVER);

您可以在此博客文章中找到更多信息(请参阅“可绘制着色”部分)

卓云
2023-03-14

根据留档android的相关方法是setBackground TintList(ColorStateList)

使现代化

点击此链接了解如何创建颜色状态列表资源。

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android" >
    <item
        android:color="#your_color_here" />
</selector>

然后使用加载它

setBackgroundTintList(contextInstance.getResources().getColorStateList(R.color.your_xml_name));

其中contextInstanceContext的实例

使用AppCompart

btnTag.setSupportButtonTintList(ContextCompat.getColorStateList(Activity.this, R.color.colorPrimary));

 类似资料:
  • 问题内容: 如何以编程方式添加一个单击按钮即可执行操作的按钮?将使用什么代码? 我习惯在情节提要中添加一个按钮,然后从那里运行IBAction。 问题答案: 在SpriteKit中添加按钮并响应其点击并不像在UIKit中那样容易。基本上,您需要创建某种类型的对象,以绘制您的按钮,然后检查场景中记录的触摸是否在该节点的范围内。 一个非常简单的场景,中心只有一个红色矩形作为按钮,看起来像这样: 如果您

  • 问题内容: 我有2个视图控制器,应根据用户输入进行交换。因此,我想根据从文本文件获得的输入以编程方式切换视图。 关于如何以编程方式单击按钮或使用输入加载特定ViewController的任何帮助? 问题答案: 要以编程方式触发事件,您需要致电 - 迅捷3

  • 我想通过编程设置单选按钮的色调。在xml中,有一个名为“buttonint”的属性来完成这项工作。但在程序中,我找不到任何方法来设置单选按钮的色调或颜色。有什么方法可以做到这一点吗?

  • 我正在使用SpringDoc,并试图以编程方式向OpenApi添加一个模式,但没有成功。 mySchema的描述没有添加到我在生成的YAML文件中看到的模式列表中,如果我试图引用它:

  • 我正在尝试在Android上添加Wifi网络,我想知道如何连接到不广播其SSID的Wifi网络(它是否有空SSID或带有\0s的清晰SSID)。 这是我目前用于广播其SSID的Wifi网络的内容:

  • 我想知道它是否可能以编程方式进行,以及如何在选中RadioButton时以编程方式更改其颜色? PS:我不想使用XML 在XML中,我使用这样的东西及其工作: 在我style.xml 我如何通过编程实现这一点?