我已经创建了我的第一个小部件,但是当我更改按钮图像时我遇到了问题。 下面是widget的java文件代码的一部分:
@Override
public void onReceive(Context context, Intent intent)
{
if (mp == null){
mp = MediaPlayer.create(context.getApplicationContext(), R.raw.segno);
}
final String action = intent.getAction();
if (ACTION_WIDGET_RECEIVER.equals(action)) {
if (mp.isPlaying()){
mp.stop();
mp.release();
mp = MediaPlayer.create(context.getApplicationContext(), R.raw.segno);
}
else{
RemoteViews control = new RemoteViews(context.getPackageName(), R.layout.widget);
control.setImageViewResource(R.id.button, R.drawable.pausa);
ComponentName cn = new ComponentName(context, Widget.class);
AppWidgetManager.getInstance(context).updateAppWidget(cn, control);
mp.start();
}
super.onReceive(context, intent);
}
super.onReceive(context, intent);
}
我在日志中读到了这个:
02-17 23:46:57.042: W/AppWidgetHostView(946): updateAppWidget couldn't find any view, using error view
我认为这是一个问题,但我不明白如何解决它。 当小部件出现此错误时说:加载小部件时出现问题。
谢谢大家
这是小部件的XML布局
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
android:layout_margin="4dp">
<Button
android:id="@+id/button"
android:paddingRight="30dp"
android:layout_width="50dp"
android:layout_height="50dp"
android:background="@drawable/vai" />
<ImageView
android:id="@+id/imageView1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_toRightOf="@+id/button"
android:maxHeight="100dp"
android:maxWidth="100dp"
android:src="@drawable/segno" />
</RelativeLayout>
答案 0 :(得分:2)
您尝试根据this Button
更改Button
的{{1}}属性的图像等同于setImageViewResource
属性所以我建议您将其更改为ImageView
或ImageButton
可点击的按钮,而不是按钮。
所以也许你的XML看起来像这样:
ImageView
<强>更新强>
原因是<ImageButton
android:id="@+id/button"
android:paddingRight="30dp"
android:layout_width="50dp"
android:layout_height="50dp"
android:background="@drawable/vai" />
与android:background
不同,它没有调整照片的大小,它实际上使图像成为照片的大小(setImageViewResource与src相同)..所以你要么从头开始调整照片大小或尝试将此属性添加到android:src
ImageButton
但我不确定它会起作用,还没试过。
希望这对你有用。尝试一下,给我一个反馈。