如何从 GradientDrawable 获取颜色

2024-02-01

首先,我将绿色设置为View mIcon的背景,

View mIcon = findViewById(R.id.xxx);

GradientDrawable gdraw = (GradientDrawable) mContext.getResources().getDrawable(R.drawable.roundbtn_white_normal);
gdraw.setColor(Color.GREEN);
mIcon.setBackgroundDrawable(gdraw);

然后,我不知道如何从该视图的背景中获取颜色......没有 getColor() 功能...


到目前为止,下面的课程对我来说效果很好。

import android.content.res.Resources;
...

// it's the same with the GradientDrawable, just make some proper modification to make it compilable
public class ColorGradientDrawable extends Drawable {
    ...
    private int mColor; // this is the color which you try to get
    ...
    // original setColor function with little modification
    public void setColor(int argb) {
        mColor = argb;
        mGradientState.setSolidColor(argb);
        mFillPaint.setColor(argb);
        invalidateSelf();
    }

    // that's how I get the color from this drawable class
    public int getColor() {
        return mColor;
    }
    ...

    // it's the same with GradientState, just make some proper modification to make it compilable
    final public static class GradientState extends ConstantState {
        ...
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何从 GradientDrawable 获取颜色 的相关文章

  • 从队列更新活动的最佳方法

    我有一个LinkedBlockingQueue在我的 生产者 调解者 消费者 模型中的调解者中 Producer 首先更新将 Mediator 添加到 ActivityQueue 中 接下来 消费者 活动在队列中等待 侦听并获取下一个项目
  • 主题以编程方式设置。如何重新加载 Activity 来应用

    如何在不重新启动整个应用程序的情况下应用主题 如果我这样做startActivity getIntent finish 活动退出并且不重新启动 是否可以简单地重新启动 重新创建活动来应用主题 它的顺序不正确 finish intent ne
  • 有关 paddingStart 使用的冲突 lint 消息

    API 17 RTL 支持发布后 我将以下内容添加到我的清单中 android supportsRtl true 这导致 Lint 在我的视图中有 paddingLeft Right 的地方正确地向我发出这些警告 考虑添加 android
  • Android 布局不需要的填充

    所以我有这个布局文件 如下 正如您所看到的 没有填充或边距 dimen xml 文件也没有任何填充 边距 最后 我根本不以编程方式更改布局
  • IntentService、Service 或 AsyncTask

    实现这一点的最佳方法是什么 我有一个 Android 应用程序 它将使用我的 python 服务器来允许两部手机之间进行轮流通信 回合意味着他们在一轮开始之前不能互相交谈 一旦他们发送一条消息 他们就不能发送另一条消息 直到对方做出回应 然
  • Mesibo 通话 UI 未更新

    我正在尝试更改 Mesibo Call UI 的配置 但它并没有改变 我尝试如下 MesiboCallConfig mesiboCallConfig new MesiboCallConfig mesiboCallConfig backgro
  • Android Studio:Android 设备监视器未显示我的设备

    我的真实设备是索尼 Xperia c6502安卓版本4 3 我确定我将其连接到我的计算机然后打开开发者选项 USB调试 on 在 SDK 管理器中 Google USB 驱动程序已安装 I downloaded Xperia Z Drive
  • AOSP 中 android.Build.SERIAL 何时何地生成?

    我知道android Build SERIAL是在第一次设备启动时生成的 但我无法准确定位位置和时间 我正在建造AOSP Jelly Bean Android平板电脑 nosdcard 第二个问题 这个是序列号吗 really对所有人来说都
  • Kotlin 和惯用的书写方式,基于可变值“如果不为空,则...”

    假设我们有这样的代码 class QuickExample fun function argument SomeOtherClass if argument mutableProperty null doSomething argument
  • 将 firebase auth 与 google app engine 云端点集成

    有人可以指定 使用一些示例代码 如何验证谷歌云端点中的 firebase 令牌吗 最近提出的问题根本没有澄清 如何将 Firebase 身份验证与 Google 应用引擎端点集成 https stackoverflow com questi
  • 从 Handler.obtainMessage() 获取什么参数

    我正在使用线程来执行一些 BT 任务 我正在尝试向 UI 线程发送消息 以便我可以基于我的 BT 线程执行 UI 工作 为此 我使用处理程序 但我不知道如何检索发送到处理程序的数据 要发送数据 我使用 handler obtainMessa
  • cordova插件条码扫描仪打不开扫描

    我的条形码扫描仪插件有问题 我不是天才 我不太了解如何编写网络应用程序 我使用phonegap和cordova 并且尝试制作一个网络应用程序 在单击链接后扫描条形码 我之前已经使用此命令行安装了该插件 cordova plugin add
  • Android - 正确使用 invalidateOptionsMenu()

    我一直在寻找很多invalidateOptionsMenu 我知道它的作用 但我想不出这种方法在现实生活中有用的任何例子 我的意思是 例如 假设我们要添加一个新的MenuItem to our ActionBar 我们可以简单地获取菜单on
  • InAppMessage 一旦显示就会自动消失

    您好 我最近将 InAppMessaging 添加到我的项目中 这似乎很容易集成 但对我来说并没有按预期工作 首先 我将其添加到 build gradle 中 implementation com google firebase fireb
  • 如何在 Android 中保存 Edittext 中的文本而不丢失文本的粗体、斜体等功能

    我想做的就是从 Edittext 中获取文本 该文本具有粗体和斜体等功能 并将其保存在文本文件中 但是当我读回并显示它时 这些功能丢失了 它们不显示 如何通过将文本保存在文本文件或任何文件中来保持丰富的功能 您可以使用Html toHtml
  • Android UnityPlayerActivity 操作栏

    我正在构建一个 Android 应用程序 其中包含 Unity 3d 交互体验 我已将 Unity 项目导入 Android Studio 但启动时该 Activity 是全屏的 并且不显示 Android 操作栏 我怎样才能做到这一点 整
  • compileReleaseKotlin 失败并出现 java.lang.ClassNotFoundException:com.sun.tools.javac.util.Context

    我正在尝试使用 gradlew 通过终端构建我的 Android 项目 其中包含库模块 在 Android Studio 中 它编译并安装成功 但是当我尝试运行时 gradlew assembleDebug我得到以下堆栈跟踪 Using k
  • Android BLE 扫描永远找不到设备

    几天以来 我尝试在我的应用程序中实现 BLE 连接 我知道我尝试连接的设备功能齐全 因此问题一定是我的代码 我用BluetoothLeScanner startScan 方法 但回调方法永远不会被调用 public void startSc
  • 在DialogFragment中,onCreate应该做什么?

    我目前正在摆弄 DialogFragment 以学习使用它 我假设相比onCreateView onCreate 可以这样做 public void onCreate Bundle savedInstanceState super onCr
  • 进程被杀死后不会调用 onActivityResult

    我有一个主要活动 Main 和另一个活动 Sub 由 Main 调用 startActivityForResult new Intent this SubActivity class 25 当我在 Sub 时 我终止该进程 使用任务管理器或

随机推荐

  • 使用python向bot框架添加自适应卡

    我正在从这里玩一点 python 机器人框架的示例https github com Microsoft botbuilder python https github com Microsoft botbuilder python现在我想在响
  • iOS 上国家/地区代码的电话号码格式

    我需要将电话号码格式显示为占位符UI文本字段 我怎样才能做到这一点 对于国家 地区选择 我使用下面提到的库 它为我提供了针对用户选择的国家 地区的国旗和国家 地区代码 https github com NikKovIos NKVPhoneP
  • 在多线程环境中读取值

    我正在浏览有关线程和锁的 JLS 文档http docs oracle com javase specs jls se7 html jls 17 html jls 17 5 http docs oracle com javase specs
  • swprintf 在 8 位范围之外的字符上被阻塞

    这种情况发生在 OS X 上 但我怀疑它适用于任何 UNIX y 操作系统 我有两个看起来像这样的字符串 const wchar t test1 const wchar t x44 x00 x00 x00 x73 x00 x00 x00 x
  • 在 jMeter 的值字段中使用变量

    我添加了一个用户定义变量元素 然后创建一个值为 123456 的变量 Parameter 并将其传递到 GET 请求中 创建了第二个变量 Response 其值为 无效代码 123456 我添加了一个响应断言元素 将 Response 变量
  • 当 pyinstaller 发现版本冲突时手动指定库

    使用 pyinstaller 时是否可以在 Mac OSX 上手动替换或指定 dylib 的位置 我在尝试打开已完成的 app 时收到错误 Traceback most recent call last File DeepMeerkat m
  • NHibernate 和共享网络托管

    有没有人能够在共享网络主机上启动并运行基于 NHibernate 的项目 NHibernate 在幕后用反射做了很多奇特的事情 但我目前使用的主机只允许应用程序以中等信任度运行 这限制了你可以用反射做的事情 并且它会带来各种安全性权限错误
  • Android Studio:Gradle 构建失败 - 任务“:compileDebugAidl”执行失败

    在 Android Studio I O 预览 AI 130 677228 中更改源代码并使用 gradle 进行构建后 构建失败并出现以下错误 Gradle FAILURE Build failed with an exception W
  • 选择列表中的 HTML 复选框

    我正在尝试在选择列表中构建一个复选框列表 例如此处的国家 地区列表 链接文本 https careers microsoft com Search aspx 我正在使用 Asp net MVC 因此它需要是 pure html JavaSc
  • Elasticsearch:如何删除映射类型而不删除整个索引?

    是否可以从索引中删除单个映射类型而不删除整个索引 https www elastic co guide en elasticsearch reference current indices delete mapping html https
  • 如何使用 data-href 打开新选项卡

    我正在使表格行可单击 但单击后我想打开一个新选项卡 我尝试使用data target但这没有用 tr class table row tr 可以这样做 jQuery JSFiddle 1
  • 如何使用 Youtube API 为 Youtube 视频添加字幕?

    是否有可能添加字幕 to Youtube视频使用Google Youtube API v3 重要条件 视频不是所有者 任务 使用所选语言添加自定义字幕Google APIs Client Library for JavaScript Goo
  • Python MS Word [重复]

    这个问题在这里已经有答案了 可能的重复 在 Python 中读取 写入 MS Word 文件 https stackoverflow com questions 188444 reading writing ms word files in
  • NSString 的 Base64 编码 [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • TCP 数据包“不分段”的好处?

    我们的一位客户在将数据从我们的应用程序 在他们的 PC 上 提交到服务器 不同的地理位置 时遇到问题 当发送低于 1100 字节的数据包时 一切正常 但在此之上 我们看到 TCP 每隔几秒重新传输一次数据包 但没有得到任何响应 我们用于测试
  • constexpr(即常量初始化)模板变量的初始化顺序是否有保证?

    From en cppreference com w cpp language initialization http en cppreference com w cpp language initialization 无序动态初始化 si
  • 如何在 Angular 2 中有条件地加载模块

    下面的代码可以根据不同的 Angular cli 环境变量有条件地加载模拟服务 然而 它有一个副作用 即模拟服务被内置到最终的转码和缩小的输出文件中 是否有更好的方法来完成Angular2中的延迟加载模块 应用程序模块 ts import
  • “关联表”(多对多关系)的正确名称是什么[关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 关联表 的正确或最流行的名称是什么 我听说过查找 关联 解析 映射和联结表 没有 正确 的名称 但学术名称将是 关联表 请参阅 维基百科文章关联
  • 使用 Ant 创建战争时 JSP 不会被复制

    我正在使用以下 Ant 脚本来创建一个简单的 Web 应用程序之战
  • 如何从 GradientDrawable 获取颜色

    首先 我将绿色设置为View mIcon的背景 View mIcon findViewById R id xxx GradientDrawable gdraw GradientDrawable mContext getResources g