繁体   English   中英

Android Change小部件按钮

[英]Android Change widget button

我已经创建了我的第一个小部件,但是当我更改按钮图像时我遇到了问题。 下面是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>

你正在试图改变一个形象Button不具有的属性Button ,根据这个 setImageViewResource是equivilant到ImageView属性,以便而不是有一个按钮,我建议你改变它要么ImageButtonImageView是点击。

所以也许你的XML看起来像这样:

<ImageButton
  android:id="@+id/button"
  android:paddingRight="30dp"
  android:layout_width="50dp"
  android:layout_height="50dp"
  android:background="@drawable/vai" />

更新

原因是android:background不同于android:src它没有调整照片大小实际上使图像成为照片的大小(setImageViewResource与src相同)..所以你要么从头开始调整照片大小或者尝试将此属性添加到ImageButton

android:scaleType="fitXY"

但我不确定它会起作用,没试过。

希望这对你有用。 尝试一下,给我一个反馈。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM