Android应用程序小部件动态背景颜色与圆角android 2.3
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Android应用程序小部件动态背景颜色与圆角android 2.3,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2027字,纯文字阅读大概需要3分钟。
内容图文
我在Android 2.3中动态更改小部件背景颜色的实现面临问题.
我使用这种方法实现:
http://oceanuz.wordpress.com/2013/07/11/widget-remoteviews-round-corners-background-and-colors/
所以我的WidgetLayout中有一个ImageView:
<ImageView
android:id="@+id/widget_background_image"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:src="@drawable/widget_bg_shape" />
这就是widget_bg_shape的样子:
<?xml version="1.0" encoding="UTF-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle" >
<solid
android:color="#496fb3"/>
<corners
android:radius="3dp" />
</shape>
我的代码根据用户首选项更改背景颜色:
private static void setBackgroundColor(Context pContext, int pWidgetID,
RemoteViews remoteViews) {
float[] color = { 218, 59 / 100F, 70 / 100F };
int transparency = 192;
SharedPreferences settings = pContext.getSharedPreferences("Widget"
+ pWidgetID, Context.MODE_PRIVATE);
Color.colorToHSV(settings.getInt("color", Color.HSVToColor(color)),
color);
transparency = settings.getInt("transparency", transparency);
remoteViews.setInt(R.id.widget_background_image, "setColorFilter",
Color.HSVToColor(color));
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {
remoteViews.setInt(R.id.widget_background_image, "setImageAlpha",
transparency);
} else {
remoteViews.setInt(R.id.widget_background_image, "setAlpha",
transparency);
}
所以在较新的Android版本上,这样可以正常工作,但在Android 2.3上(使用android 2.3.6在Samsung S上进行测试,也有来自其他设备的一些用户反馈),背景总是完全透明的.
我发现,在remoteView上调用setColorFilter或setAlpha会导致Image完全透明或不透明.
根据上面的文章postet和引用的stackoverflow问题(Rounded corners on dynamicly set ImageView in widget?),这应该适用于android 2.2和obove.但就我而言,事实并非如此.
任何人都可以帮我吗?
解决方法:
迟到总比不到好:
我通过从android 2.x的背景可绘制形状中删除默认颜色来修复此问题
<?xml version="1.0" encoding="UTF-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle" >
<corners android:radius="3dp" />
</shape>
内容总结
以上是互联网集市为您收集整理的Android应用程序小部件动态背景颜色与圆角android 2.3全部内容,希望文章能够帮你解决Android应用程序小部件动态背景颜色与圆角android 2.3所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。