5

我正在尝试将值转发到 Android RemoteView。一些值可以通过使用反射的 set 方法转发。例如背景颜色作品:

rv.setInt(R.id.viewId, "setBackgroundColor", 0xffff0000);

尽管该机制对于一个参数方法调用看起来非常通用,但它不适用于某些方法。例如。在视图上设置 alpha 不起作用(在 api 级别 15 上运行):

rv.setFloat(R.id.viewId, "setAlpha", 0.5f);

框架在运行时抱怨不支持 setAlpha(float)。有谁知道为什么会这样?远程视图上支持的方法的规则是什么?为什么阿尔法不在其中?

更新:

CommonsWare 的答案是正确的。经过更多研究后,某些人可能会觉得 ImageView.setAlpha( int ) 是可远程的。它仅在图像上设置 alpha,因此不适用于九个补丁等。但它可能对某些人有用。

4

1 回答 1

7

有谁知道为什么会这样?远程视图上支持的方法的规则是什么?

setBackgroundColor()@RemotableViewMethod注释。setAlpha()才不是。

为什么阿尔法不在其中?

这可能是从具体的技术原因到简单的疏忽。欢迎您在http://b.android.com上提交功能请求,以便在未来的 Android 版本中添加该注释,或者实施它并提交补丁。

于 2012-07-07T14:02:19.817 回答