0

ウェブサーバーから画像を読み込んで、Android widget. 画像が変更される可能性があるため、ウィジェットも60分ごとに更新しようとしています。イメージもあるはずclickableです。クリック可能な部分はボタンで完全に機能していましたが、レイアウトで代わりに ImageView に変更すると、クリック部分が機能しなくなります。そして、画像をまったくロードできません。これが私のコードです

@Override
public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) {
Toast.makeText(context, "onUpdate", Toast.LENGTH_SHORT).show();

RemoteViews remoteViews = new RemoteViews(context.getPackageName(), R.layout.main);
Intent i = new Intent(context, LoadPage.class);
i.setAction(ACTION_WIDGET_LOAD);

PendingIntent pi = PendingIntent.getActivity(context, 0, i, 0);
remoteViews.setOnClickPendingIntent(R.id.button, pi);

appWidgetManager.updateAppWidget(appWidgetIds, remoteViews);

Timer timer = new Timer();
timer.scheduleAtFixedRate(new MyButton(context, appWidgetManager), 1, 5000);
}

private class MyButton extends TimerTask {
RemoteViews remoteViews;
AppWidgetManager appWidgetManager;
ComponentName thisWidget;

public MyButton(Context context, AppWidgetManager appWidgetManager) {
  this.appWidgetManager = appWidgetManager;
  remoteViews = new RemoteViews(context.getPackageName(), R.layout.main);
  thisWidget = new ComponentName(context, ButtonWidget.class);
}

@Override
public void run() {
  Bitmap buttonimg = null;
  try {
    String name = "http://badams.ca/otwstats/get_stats.php?user=badams";
    URL url_value = new URL(name);
    buttonimg = BitmapFactory.decodeStream(url_value.openConnection().getInputStream());
  } catch (IOException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
  }

  i++;
  remoteViews.setBitmap(R.id.button, "setButton", buttonimg);
  appWidgetManager.updateAppWidget(thisWidget, remoteViews);
}
4

2 に答える 2

0

クリック可能な部分の背景として画像を設定できます。

于 2012-07-30T04:15:46.130 に答える
0

私はこれを修正することができました。画像の設定を間違えていました。

置換:

remoteViews.setBitmap(R.id.button, "setButton", buttonimg);

と:

remoteViews.setImageViewBitmap(R.id.button, buttonimg);

そしてそれは完璧に機能しました!

于 2012-08-19T15:01:18.217 に答える