You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android:如何通过代码设置AlertDialog图标的颜色?

解决方案:无需重新创建图标,动态修改颜色

当然不需要重新创建图标!你可以通过代码直接给系统提供的Drawable设置 tint 效果,和android:tint属性实现的效果完全一致,下面给你两种可行的实现方式:

方法一:兼容所有Android版本(推荐)

使用DrawableCompat类来处理,它能帮你兼容到低版本系统:

// 获取系统自带的info图标
Drawable icon = ContextCompat.getDrawable(context, android.R.drawable.ic_dialog_info);
// 包装Drawable以确保兼容性
icon = DrawableCompat.wrap(icon);
// 设置你想要的颜色(这里用你项目里的颜色资源举例)
DrawableCompat.setTint(icon, ContextCompat.getColor(context, R.color.your_target_color));
// 把修改后的图标设置给AlertDialog
builder.setIcon(icon);

方法二:仅适配API 21及以上版本

如果你的应用只面向Android 5.0(API 21)及以上的设备,可以直接用Drawable的原生setTint()方法:

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
    Drawable icon = getDrawable(android.R.drawable.ic_dialog_info);
    // 直接设置tint颜色
    icon.setTint(ContextCompat.getColor(context, R.color.your_target_color));
    builder.setIcon(icon);
}

简单来说,这两种方式都是复用同一个系统图标,通过代码动态修改其渲染颜色,完全不需要额外创建新的图标资源。

内容的提问来源于stack exchange,提问作者talha06

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 09:23:12