使用 CPNowPlaying ImageButton 时,CarPlay 正在播放屏幕在深色外观上显示错误图像

Posted

技术标签:

【中文标题】使用 CPNowPlaying ImageButton 时,CarPlay 正在播放屏幕在深色外观上显示错误图像【英文标题】:CarPlay NowPlaying screen shows wrong image on Dark appearance when using CPNowPlayingImageButton 【发布时间】:2021-10-23 01:47:17 【问题描述】:

我正在使用 CarPlay 框架开发 CarPlay 应用程序。 我使用 CPNowPlayingImageButton 在 NowPlaying 模板上显示自定义按钮。https://developer.apple.com/documentation/carplay/cpnowplayingimagebutton?language=objc 已创建 ImageAsset 图片, 然后创建 CPNowPlayingImageButton。

UIImage* image = [UIImage imageNamed:@"carplay_heart" inBundle:[NSBundle mainBundle] compatibleWithTraitCollection:self.interfaceController.carTraitCollection];

CPNowPlayingImageButton* button = [CPNowPlayingImageButton.alloc initWithImage:image handler:^(CPNowPlayingImageButton*)

    JPlaylistUtils::CurrentToggleFavorite(FALSE, TRUE, nil);
];

[CPNowPlayingTemplate.sharedTemplate updateNowPlayingButtons:@[button]];
我希望在浅色外观上显示黑色图像,在深色外观上显示白色图像,但 CarPlay 在深色外观上总是显示黑色(浅色主题)图像,并且图像尺寸太小。

如果我在 CarPlay / 设置中更改外观,图像首次按预期显示。

但如果更新按钮,CarPlay 会再次显示错误的图像。

【问题讨论】:

【参考方案1】:

我建议您只使用一张图像,并让 CarPlay 通过将“渲染为”设置为“模板图像”来确定亮/暗模式着色。您的图片有哪些尺寸?

【讨论】:

Render As to Template 设置解决了颜色问题,但是更新按钮时尺寸仍然很小。图片之前为 72x72@2x,当前尺寸为 40x40@2x、60x60@3x,遵循 CPNowPlayingButtonMaximumImageSize。

以上是关于使用 CPNowPlaying ImageButton 时,CarPlay 正在播放屏幕在深色外观上显示错误图像的主要内容,如果未能解决你的问题,请参考以下文章

在android 5上设置ImageView colorFilter(api 21)

需要在网页上的两点之间画一条线

内存不足:添加 10KB ImageButtons 后出现堆大小错误

测试使用

第一篇 用于测试使用

在使用加载数据流步骤的猪中,使用(使用 PigStorage)和不使用它有啥区别?