代表颜色的百分比值(0-100)(从红色到绿色)

2023-12-23

我有一个具有动态更新百分比(0 到 100 之间)的 Android 应用程序。该应用程序有两种特定颜色 - 浅红色 (#BD4141) 和浅绿色 (#719D98)。

我希望元素在给定百分比为 0 时具有浅红色背景,在给定百分比为 100 时具有浅绿色背景。中间百分比应表示这两种颜色之间的软过渡颜色表示。

或者,我希望它从纯红色变为纯绿色。


这段代码没有经过优化,但它做了它应该做的事情。

public class MainActivity extends Activity {

    @Override
    public void onCreate(final Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        setContentView(R.layout.screen_main);

        final SeekBar sb = (SeekBar) findViewById(R.id.seekBar);
        sb.setOnSeekBarChangeListener(new OnSeekBarChangeListener() {

            @Override
            public void onStopTrackingTouch(final SeekBar seekBar) {
            }

            @Override
            public void onStartTrackingTouch(final SeekBar seekBar) {
            }

            @Override
            public void onProgressChanged(final SeekBar seekBar,
                    final int progress, final boolean fromUser) {
                update(seekBar);
            }
        });
        update(sb);
    }

    private void update(final SeekBar sb) {
        final RelativeLayout layout = (RelativeLayout) findViewById(R.id.layout);

        final int colorStart = Color.parseColor("#BD4141");
        final int colorEnd = Color.parseColor("#719D98");

        layout.setBackgroundColor(interpolateColor(colorStart, colorEnd,
                sb.getProgress() / 100f)); // assuming SeekBar max is 100
    }

    private float interpolate(final float a, final float b,
            final float proportion) {
        return (a + ((b - a) * proportion));
    }

    private int interpolateColor(final int a, final int b,
            final float proportion) {
        final float[] hsva = new float[3];
        final float[] hsvb = new float[3];
        Color.colorToHSV(a, hsva);
        Color.colorToHSV(b, hsvb);
        for (int i = 0; i < 3; i++) {
            hsvb[i] = interpolate(hsva[i], hsvb[i], proportion);
        }
        return Color.HSVToColor(hsvb);
    }

}

此答案基于以下问题和答案两种颜色之间的android颜色,基于百分比? https://stackoverflow.com/questions/4414673/android-color-between-two-colors-based-on-percentage.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

代表颜色的百分比值(0-100)(从红色到绿色) 的相关文章

随机推荐

  • 在 Typescript 中创建 `toFunc` 泛型方法?

    我有一个 Ts 模型 需要填充一些属性 当前的代码简化是 var claimSummaryDetails Name this store selectSync currentUser Result Family find m gt m Me
  • 上传资源文件时,createBlockOutputStream 中 Spark HDFS 异常

    我正在尝试在集群中运行我的 JARyarn cluster但一段时间后我遇到了例外 最后INFO在失败之前是Uploading resource 我已经检查了所有安全组 确实如此hsdf ls成功但仍然收到错误 bin spark subm
  • Mapbox 与 Angular 6.“找不到地图容器”错误

    我正在开发我的第一个角度网络应用程序 我想介绍一些类似于谷歌地图的东西 由于新的计费策略 我不想使用最后一个 所以我尝试了 MapBox 按照教程 我成功创建了我需要的地图 问题是 我不知道如何在角度分量上显示它 我为地图生成了这个文件 并
  • 此上下文中仅支持原始类型或枚举类型

    我已经看到了很多关于这个主题的问题 但我无法对其中任何一个真正解决我所看到的问题进行排序 我有一个活动实体 用于跟踪分配给哪个员工以及哪个员工创建了记录并更新了记录 如果我删除 where a AssignedEmployee curren
  • PHP获取外部页面内容

    我从另一个网站获取 htmlfile get contens 我的问题是如何获得特定的标签值 假设我有 div p class paragraph 1800 p div 我怎样才能获得段落的值 谢谢 如果这个例子真的那么简单 你可以只使用正
  • 如何从 java 客户端正确使用 Prometheus Histogram 来跟踪大小而不是延迟?

    我有一个处理集合的 API 该API的执行时间与集合大小有关 集合越大 花费的时间就越多 我正在研究如何使用普罗米修斯做到这一点 但不确定我是否正确地做事 该领域的文档有点缺乏 我做的第一件事是定义一个摘要指标来衡量 API 的执行时间 我
  • 获取“单例类型”的类型

    我们可以通过 Shapeless 创建文字类型 import shapeless syntax singleton var x 42 narrow x Int 42 42 但我该如何操作Int 42 如果甚至不可能创建类型别名 则作为类型
  • python 中的纯文本格式[关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我正在开发一个用 python 创建
  • iOS 如何让 MapKit 显示自定义室内地图?

    我正在尝试创建我正在工作的办公室的地图 我有一个高分辨率图像 并且希望将其自动旋转到用户前进的方向 从而允许用户在地图上导航 我认为这可以使用 CoreMotion CoreLocation 和 UIScrollView 来完成 但这似乎涉
  • 错误:字符串类型的值没有成员 ComponentsSeparatedByCharactersInSet

    以下代码引发以下错误 字符串类型的值没有成员组件ComponentSeparatedByCharactersInSet 此代码来自另一个项目 该项目之前在 swift 版本 1 或 2 中有效 但不再有效 import Foundation
  • C++/STL 是否支持按属性对对象进行排序?

    我想知道STL是否支持这一点 假设我有一堂这样的课 class Person public int getAge const double getIncome const 和一个向量 vector
  • Scala 中抽象特征的语义

    我想知道使用的语义是什么abstract关键字与 a 组合trait is 如果该特征没有定义任何抽象方法 则abstract关键字不会阻止我创建实例 scala gt abstract trait T defined trait T sc
  • 未解析的外部符号——模板类[重复]

    这个问题在这里已经有答案了 可能的重复 C 模板 链接错误 https stackoverflow com questions 1353973 c template linking error 我正在尝试实现选择排序 但我不断收到错误 打印
  • 加载 VTT 文件时出现跨域错误

    我刚开始在 HTML 5 中使用音频标签 并且想要构建一个播放器 我想在轨道标签中使用 VTT 文件进行测试 看看隐藏式字幕如何工作 这是我的代码
  • 如何异步加载CSS

    我正在尝试消除 2 个在我的网站上出现渲染阻塞的 CSS 文件 它们出现在 Google Page Speed Insights 上 我采用了不同的方法 但没有一个成功 不过最近我发现了一个帖子异步思考 https css tricks c
  • RxSwift + UITableViewCell如何获取heightForRowAt中的单元格对象

    我有一个带有 UITableView 的视图控制器 表数据使用 RxSwift 填充 let observable Observable just data observable bindTo tableView rx items cell
  • 为什么 Rails 不渲染 .js.erb 文件?

    我有一个 Rails 应用程序 我试图用 HTML 文件进行 jQuery 渲染 这样做的要点是 jQuery 是特定于页面的 所以我不希望通过将其放在标题中来加载每个页面 这是我对文件所做的操作 消息控制器 rb GET messages
  • 检查其他 data.table 中 data.table 值的频率

    library data table DT1 lt data table num 1 6 group c A B B B A C DT2 lt data table group c A B C 我想添加一栏popular to DT2有价值
  • 如何使用互斥体保护公共资源?

    我有一个公共资源 我希望我的应用程序 或其 COM API 的 1 个且仅 1 个实例可以随时访问该资源 我尝试使用互斥体来保护此资源 但是当主机 dotnet 应用程序的多个线程尝试访问 COM 对象时 互斥体似乎没有被释放 这是我用来保
  • 代表颜色的百分比值(0-100)(从红色到绿色)

    我有一个具有动态更新百分比 0 到 100 之间 的 Android 应用程序 该应用程序有两种特定颜色 浅红色 BD4141 和浅绿色 719D98 我希望元素在给定百分比为 0 时具有浅红色背景 在给定百分比为 100 时具有浅绿色背景