我正在尝试在Android中创建一个小部件,当我点击图像时,图像会被一个新的 - 一种切换图像更改。
但是当我点击它时,图像覆盖旧图像而不是替换新图像。我不知道这是小工具的工作方式还是我做错了。
我的图像是半透明的,所以如果一个覆盖另一个,可以看到重叠的图像。
这是我通过覆盖它在OnReceive中编写的代码:
@Override
public void onReceive(Context context, Intent intent){
if (intent.getAction().equals(iAlertConstant.ACTION_WIDGET_UPDATE_FROM_WIDGET)) {
RemoteViews remoteViews = new RemoteViews(context.getPackageName(),R.layout.mywidget);
remoteViews.setImageViewResource(R.id.btnOnOff,R.drawable.offbtn);
ComponentName thisWidget = new ComponentName(context, EmergencyWidget.class);
AppWidgetManager.getInstance(context).updateAppWidget(thisWidget, remoteViews);
}
else
super.onReceive(context, intent);
}
布局
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:background="@drawable/widget_background"
android:paddingLeft="10.0dip"
android:paddingTop="8.0dip"
android:paddingRight="10.0dip"
android:paddingBottom="8.0dip"
android:layout_width="fill_parent"
android:layout_height="72dp"
android:layout_marginLeft="10.0dip"
android:layout_marginTop="10.0dip"
android:layout_marginRight="10.0dip"
android:id="@+id/emergencyWidget"
android:orientation="horizontal">
<ImageView
android:background="@drawable/offbtn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="7dp"
android:layout_marginLeft="4dp"
android:layout_marginRight="4dp"
android:layout_gravity="right"
android:id="@+id/btnOnOff"
/>
</LinearLayout>
答案 0 :(得分:1)
我怀疑,您使用background
上的ImageView
属性。 background
和setImageViewResource
不同。相反,请坚持使用相同的代码,但更改布局以使用src
代替background
。
答案 1 :(得分:0)
好吧,我已经在小部件布局中创建了ImageViews并使其成为一个不可见的,每当有人点击时,我将使第一个看不见,第二个看不见
remoteViews.setViewVisibility(R.id.emergencyOnOff,ImageView.GONE);
remoteViews.setViewVisibility(R.id.emergencyOnOff2,ImageView.VISIBLE);
如果有人有任何其他解决方案,请随时发帖,因为此问题仍然存在,更多关于wont be feasible if there will be plenty of ImageViews