Android TV:VerticalGridFragment阴影尺寸和颜色

Android TV:VerticalGridFragment阴影尺寸和颜色,第1张

概述我正在开发 Android TV应用程序,但我对VerticalGridFragment渲染的标准阴影不太满意,我希望它更小,更暗. 我搜索了代码,但没有找到任何完整的解决方案. 在我的VerticalGridPresenter子类中,我可以覆盖的唯一方法是createShadowOverlayOptions,但我无法得到我想要的结果. 我想出的唯一解决方法是定义以下维度,以便覆盖在支持库中声明的 我正在开发 Android TV应用程序,但我对VerticalGrIDFragment渲染的标准阴影不太满意,我希望它更小,更暗.

我搜索了代码,但没有找到任何完整的解决方案.
在我的VerticalGrIDPresenter子类中,我可以覆盖的唯一方法是createShadowOverlayOptions,但我无法得到我想要的结果.

我想出的唯一解决方法是定义以下维度,以便覆盖在支持库中声明的维度:

<dimen name="lb_material_shadow_details_z">3dp</dimen><dimen name="lb_material_shadow_focused_z">4dp</dimen><dimen name="lb_material_shadow_normal_z">3dp</dimen>

但它更像是一个黑客而不是一个合适的解决方案.

这是标准阴影:

这是我当前黑客得到的结果:

你可以看到,它更小但我无法改变颜色.

是否有正确的方法为VerticalGrIDFragment和RowsFragment类设置阴影颜色和尺寸

我正在使用最新的Leanback版本:

compile 'com.androID.support:leanback-v17:25.2.0'

我的minSdkVersion是17,因为有一个自定义的AndroID电视播放器,但它可以从21开始工作.

解决方法 我之前实际上已经向Leanback团队询问了这个问题,他们说他们推荐的定制组件的方法是覆盖样式和尺寸.这可能有助于缓解您的一些担忧.

但是,我们还必须自定义视图上的阴影.我们通过创建自己的视图和我们自己的视图演示者(而不是使用他们的ImageCardVIEw)来做到这一点.有了这个,我们就可以在演示级别设置自己的阴影.

如果您查看ListRowPresenter的文档,文档会说:

ListRowPresenter applIEs a default shadow to each child vIEw. Call setShadowEnabled(boolean) to disable shadows. A subclass may overrIDe and return false in isUsingDefaultShadow() and replace with its own shadow implementation.

要了解更多关于它们如何处理阴影的信息,请查看ListRowPresenter的源代码,并查看ShadowHelper和ShadowHelperAPI21类,了解它们是如何实现为其列表项添加阴影的.我们实际上只是复制了这两个类,因为它们是包本地的.

您还可以在ListRowPresenter中覆盖ShadowOverlayHelper.Options createShadowOverlayOptions(),它可以让您更改角半径和聚焦和未聚焦z.

总结

以上是内存溢出为你收集整理的Android TV:VerticalGridFragment阴影尺寸和颜色全部内容,希望文章能够帮你解决Android TV:VerticalGridFragment阴影尺寸和颜色所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1126002.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-30
下一篇 2022-05-30

发表评论

登录后才能评论

评论列表(0条)

保存