半透明的AppWidget?
我有一个 AppWidget,其布局在根部有一个 LinearLayout 。该小部件使用背景 9-patch 为小部件提供框架。
如何在小部件上设置 Alpha 通道?
我无法直接设置它,因为背景属性用于指定 9 补丁。它是一个 LinearLayout 而不是 ImageView,所以我不能使用 setAlpha(),那么如何使其半透明呢?
透明度级别会动态变化,因此我无法使用半透明位图。
I have an AppWidget where the layout has a LinearLayout at the root. The widget uses a background 9-patch to provide a frame for the widget.
How do I set the alpha channel on the widget?
I can't set it directly as the background attribute is being used to specify the 9-patch. It's a LinearLayout not an ImageView, so I can't use setAlpha(), so how do I make it semi-transparent?
The transparency level will change dynamically, so I am unable to use a semi-transparent bitmap.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
请参阅 如何在 api level 7 (Android 2.1) 中设置整个视图的 alpha 值
See the answers to How can I set an entire view's alpha value in api level 7 (Android 2.1)
据我所知,执行此操作的唯一方法是使用半透明可绘制对象(可能是 9patch),因为似乎无法通过 RemoteViews 来执行此操作。
As far as I can see the only way to do this is to use a semi-transparent drawable (perhaps a 9patch) as there appears to be no way to do it via RemoteViews.
您可以在 Android 2.2 及更高版本上的 RemoteViews 中动态设置透明度,方法是使用 imageview 显示背景并利用 imageview 的 setAlpha 方法。
使用相对布局将图像视图放置在内容后面,并在图像视图中将 src 设置为背景图像。请注意,我将图像设置为 src 而不是背景,以便我可以使用 setAlpha 方法。
布局:
当您创建要在小部件中显示的 RemoteView 时,您可以使用通用 setInt 方法来访问 ImageView 上的 setAlpha 方法,如下所示:
我还使用 setImageViewResource 从首选项中交换背景图像。
You can set the transparency dynamically in a RemoteViews on Android 2.2 and above by using an imageview to display the background and taking advantage of the setAlpha method of imageview.
Use a relativelayout to position an image view behind the content and within the imageview set the src to your background image. Note that I'm setting the image to src and not background so I can use the setAlpha method.
The layout:
When you're creating the RemoteViews for display in the widget you can use the generic setInt method to access the setAlpha method on the ImageView like so:
I also use setImageViewResource to swap out the background image from preferences.