调色板库在 GridView 中滚动时更改颜色

2024-01-13

我在实现新的 Palette 库时遇到了一些问题(在 4.4.4 上,'com.android.support:palette-v7:21.0.+')。我正在尝试为 GridView 中每个项目的一部分着色,效果很好,但是当我将一个项目从屏幕上滚动然后返回时,它会在恢复到正确颜色之前会更改为错误的颜色一段时间。

我以为这个问题可能是在调用view.setBackgroundColor每次调用 getView 时,我都会在代码之前检查它是否已经生成了颜色。这让情况变得更糟。每次我滚动时,颜色都会交换随着足够的滚动,我所有的颜色都交换了位置。看起来颜色也在相互切换,而不是随机的。

这是我的代码的一个片段:

Palette.generateAsync(bitmap,
    new Palette.PaletteAsyncListener() {
        @Override
        public void onGenerated(Palette palette) {
            Palette.Swatch vibrant =
                    palette.getMutedSwatch();
            if (vibrant != null) {
                fView.findViewById(R.id.colored_bar).setBackgroundColor(
                        vibrant.getRgb());
            }
        }
    });

有谁知道解决这个问题的方法?我听说要缓存 Palette 的响应,但不确定这是否意味着我要做的事情比我现在要做的更多。我还尝试了 Palette 的同步和异步使用。 谢谢。


我找到了解决这个问题的方法。基本上问题是每次都会创建调色板对象,这既昂贵又不准确。由于调色板是静态的,我创建了一个 ViewHolder 并在创建调色板后将其存储在其中。

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

调色板库在 GridView 中滚动时更改颜色 的相关文章

  • Android 应用程序因 Firebase 电话身份验证而崩溃

    我正在使用 firebase 进行电话号码身份验证 当我使用我的电话号码时 它会自动验证它 但是当我使用另一个电话号码时 我得到类转换异常 它说 getGoogleApiForMethod 返回 Gms stackoverflow上也有类似
  • Android 中的短信编码

    我的问题是我想发送特定类别和特定编码的短信 0 类和 7 位编码 当检查 Android Telephony SmsManager 和 SmsMessage 时 您无能为力 SmsManager 提供两个功能 发送文本消息和发送数据消息 如
  • 删除 Android 中切换按钮的填充

    我正在 android 中创建一个简单的切换按钮并将背景设置为可绘制对象
  • 标记上存在语法错误,需要 AnnotationName - 查询错误

    我收到了令牌语法错误 AnnotationName 预期出现在以下行 query findInBackground new FindCallback
  • 这样理解Activity类似于iOS中的ViewController就可以了吗?

    这样理解Activity类似于iOS中的ViewController就可以了吗 我很困惑接受 Android 中的术语概念 如 活动 服务 等 是的 我想说 Activity 和 ViewController 非常相似 只有一个很大的区别
  • 针对 Android 开发优化 Eclipse

    我使用 Eclipse 和 ADT 插件开发 Android 而且速度 很慢 我必须经常重新启动 当我打开各种 Android 项目 当我使用库项目时需要 时 情况会变得更糟 使用 ADT 插件时 是否可以进行任何具体优化来提高 Eclip
  • 如何实现可运行队列

    我正在尝试实现一个可运行队列 在异步任务期间依次执行 意味着队列中的下一个将在另一个完成后执行 我编写了一个管理器来管理这些可运行对象和本身就是可运行对象的任务 然后 我获取异步任务中的第一个任务并运行它 希望它能够在队列中运行 但是它最终
  • 使用 Retrofit 2 添加标头以请求

    我正在尝试发送带有身份验证标头的请求 但服务器似乎无法识别客户端 我用了this https futurestud io tutorials android basic authentication with retrofit教程 并实现了
  • 当我单击 GridView 项时返回 ImageView 实例

    当我点击GridView项时如何返回ImageView实例 我为 ItemClick 创建自定义绑定事件 public class ItemClickSquareBinding MvxBaseAndroidTargetBinding pri
  • 如果从超链接打开,应用程序将启动两次

    我正在开发一个应用程序 可以从多个地方启动 例如日历中的超链接 我在以下场景中面临问题 如果应用程序已启动并在后台运行 并且用户单击本机日历中的事件 超链接来启动应用程序 我的应用程序作为新实例启动两次 在正在运行的应用程序列表中 我可以看
  • 以编程方式卸载 Android 应用程序

    我希望能够允许我的用户从我的应用程序中卸载应用程序 就像 Google Play 商店允许其用户一样 请下图 主要问题是如何定义一个按钮 按下它我们可以通过提供包名称或其他一些信息来卸载应用程序 就像图像上的卸载按钮一样 try Inten
  • Android图层列表不显示比例可绘制项目?

    使用下面的图层列表 我的比例绘制从未显示 这是为什么 菜单 对话框 标题 xml
  • 从我自己的网站而不是市场安装(和更新)Android应用程序[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我可以在自己的网站上发布 Android 应用程序 而不使用 Android 市场 该应用程序与我们的互联网软件服务一起使用 因此仅符
  • Android HTTP PUT 请求

    谁能给我一个HTTP PUT请求 Android 的示例代码 假设您想使用 HttpURLConnection 要执行 HTTP PUT 请使用以下命令 URL url new URL http www example com resour
  • Android appwidget 远程视图未更新

    当我从某些活动更新小部件时 列表远程视图不会更新 我的意思是刷新自身 它会出现直到应用程序小部件的更新 日志显示 但不会进入列表视图的适配器以用新数据填充它 public void onUpdate Context context AppW
  • 为什么我的字体大小在 android webview 对象中看起来比在 android 浏览器中查看时大得多?

    我正在尝试制作一个小型 Android 应用程序 它除了在 webview 对象而不是浏览中显示网站之外什么也不做 到目前为止它加载了目标网页 但文本和图像大小都比查看页面时大得多在实际设备浏览器中 在浏览器中 页面看起来正确 但在我的应用
  • Android 中可以导入 java.rmi.* 吗?

    我的分布式系统课程中有一个项目 我们必须在我们的项目中使用 java rmi 而且我知道由于 dalvik VM 问题 android 不提供这个库 所以我只是想问是否可以在 Android 上使用这些库 Thanks Android 不支
  • 应用程序启动器图标显示在活动的操作栏上

    在我的操作栏上显示应用程序图标 我不希望它出现在操作栏上 我修改了 androidmanifest xml 并删除了android icon从活动元素中 即使图标正在显示
  • startDrag 方法 已弃用且无法编译程序

    startDrag android content ClipData android view View DragShadowBuilder java lang Object int 已弃用 如何解决这个问题而又不失去对旧版本的兼容性 还有
  • 如何强制刷新 CallLog.Calls.CACHED_NAME 列?

    我的目标是从通话记录中收集所有未知的电话号码 这可以通过以下代码来实现 private static final String CALLOG PROJECTION CallLog Calls ID CallLog Calls CACHED

随机推荐

  • 在 Visual Studio 2010 中覆盖默认的 C++ 类模板

    当我在 Visual Studio 2010 中创建一个新的 C 类时 它会生成一个带有一些模板代码的类 我如何修改此模板以满足我自己的需要 查找相关信息的一个问题是 大多数有关创建模板的信息都是针对 NET 的 而 Visual C 的过
  • Flex 盒子动态宽度和高度

    我正在尝试使用反应本机创建消息视图 例如 如你看到的 气泡具有基于内容的动态宽度和高度 气泡有一个最大宽度 并且它们向下生长 我正在尝试使用 React Native 来重新创建这个 但是我只能实现 2 并且不确定如何实现这两个目标 这是我
  • 从 OTG 为以太网卡分配静态 IP

    我想为以太网卡分配静态 IP 通过 OTG 电缆连接到 Android 设备 它应该以编程方式完成 但我找不到有关 android 中以太网卡的任何参考 有任何想法吗 谢谢 如果它是 root 设备 你可以尝试使用这个 Process pr
  • Ruby/Rails - 将整数转换为星期几

    我知道你可以使用wday http apidock com ruby Date wday以整数值形式返回星期几 Date new 2001 2 3 wday gt 6 a k a Saturday 但是 有没有一种方法可以相反地做到这一点呢
  • 使用 滚动单页网站

    我正在开发一个单页网站 并且遇到了问题 a a tags 我希望当用户单击 Div 时 他们会被带到页面的不同部分 此刻我有 a a 那样做的 a href divid About a css tricks com examples Smo
  • 如何关闭 Excel VBA 内的 Internet Explorer 实例

    我正在运行一个 Excel VBA 宏 它打开一个 IE 实例 从 URL 中提取数据 然后再次关闭该实例 Dim IE As Object Set IE CreateObject InternetExplorer Application
  • Subsonic 如何处理连接?

    在 Nhibernate 中 您可以通过在 BeginRequest 期间创建会话来启动会话 并在 结束请求 public class Global System Web HttpApplication public static ISes
  • mplcursors:显示并突出显示附近局部极值的坐标

    我有代码显示 matplotlib 散点图中每个点的标签 使用复合光标 https mplcursors readthedocs io en stable 如同这个例子 https mplcursors readthedocs io en
  • htaccess - 重写以捕获友好的 URL 或查询字符串

    我正在尝试提出一个或多个重写规则 这些规则将采用友好的 url 或包含完整查询字符串的 url 该计划是通过使用 PHP 的 loadHTML 读取 URL 来创建纯文本页面 例如 Input 1 http www example com
  • body 标记末尾的渲染阻塞 Javascript - 内联脚本与外部脚本

    这是基于观察的后续行动上一个问题 https stackoverflow com questions 59468048 render blocking javascript at end of body tag firefox render
  • 使用多态函数从选项中提取对象

    无形状文档解释了如何使用多态函数来创建将一种容器中的对象映射到另一种容器中的函数 但是当您想从容器中解压东西时该怎么办 我有一个选项列表 val options Some 1 Some A Some 3 5 HNil 我想要一个多态函数 可
  • Twitter Bootstrap 图标或 ASCII 代码中的货币代码

    我正在 twitter bootstrap 中构建一个电子商务网站 我想在其中使用货币符号 图标在里面 我必须有其他选择 将货币代码写在ASCII码第二个是通过 twitter bootstrap 图标 我在其中创建自己的 css 到特定图
  • Tomcat 支持 HTTP/2.0?

    有谁知道Tomcat支持HTTP 2 0的最低版本是多少 我一直在他们的网站上到处寻找 但找不到有关此的任何详细信息 我是 Jetty 中的 HTTP 2 实现者 并且我关注其他实现 HTTP 2 的项目 雄猫队的马克 托马斯 Mark T
  • 如何在 Nginx 中启用 h2c?

    有没有办法在 Nginx 1 9 5 及以上版本中启用 h2c 又名 HTTP2 明文 我尝试过在 TL 上使用 h2https chronic101 xyz https chronic101 xyz它可以工作 但是我也想在端口 80 上实
  • 在 Linux 中将一个串行端口通过管道连接到另一个端口[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我正在寻找一种将一个串行端口数据 无论数据类型 传输到另一个串行端口的方法 就我而言 我试图从一个串行端口接收数据 并通过连接到另一个串行
  • 循环创建前 12 个月的列表

    有没有办法使用 PHP 循环根据当前月份 不包括当前月份 创建如下所示的前 12 个月的列表 该值应始终是每月的第一天 格式 yyyy mm dd 下拉列表本身应仅显示年份和月份 格式 yyyy mm
  • Extjs 5. Ext.application 不是一个函数。为什么?

    我在控制台中收到错误 Ext application is not a function My index html文件包含以下代码 While app js只有这段代码 取自一个演示 Ext applic
  • 如何强制从 iDevice 中删除应用程序

    我使用 TestFlight 分发应用程序进行 Beta 测试 客户拥有运行 iOS5 1 的 iPhone 4 并且无法从主屏幕删除应用程序 该应用程序是通过 TestFlight OTA 安装的 该应用程序图标上有一个空的进度条 点击时
  • Java 8 函数式接口的 lambda 模糊方法 - 目标类型

    我有以下代码 public class LambdaTest1 public static void method1 Predicate
  • 调色板库在 GridView 中滚动时更改颜色

    我在实现新的 Palette 库时遇到了一些问题 在 4 4 4 上 com android support palette v7 21 0 我正在尝试为 GridView 中每个项目的一部分着色 效果很好 但是当我将一个项目从屏幕上滚动然