2012年3月9日金曜日

[Android]ウィジェットの画像が更新されない

定期的にURLから取得した画像を表示するウィジェット作りました。

が、
更新される画像と更新されない画像があり、問題に・・・。

ソース抜粋
ComponentName thisWidget = new ComponentName(context, WidgetImage.class);
AppWidgetManager manager = AppWidgetManager.getInstance(context);
remoteViews.setBitmap(R.id.widgetImage, "setImageBitmap", mBitmap);     // 画像をセットする
manager.updateAppWidget(thisWidget, remoteViews);

更新されない原因としては以下があるみたい。
・アルファがのっている画像だとダメ
・画像サイズが大きいとダメ


アルファがのっている画像はオプションで指定して対処
bitmap = BitmapFactory.decodeStream(is);




Options opt = new Options();
opt.inPreferredConfig = Config.RGB_565;
bitmap = BitmapFactory.decodeStream(is,null,opt);




画像サイズが大きいとダメは画像を1/2にして対処
opt.inSampleSize = 2;

今回の画像はある程度決まったサイズ(480 x 800)だったので、解決できた気がします。

表示されるときと表示されないときの際は、
bitmap.getRowBytes()
で取得した値が960だとダメで、
480とかだと大丈夫なような感じでした。

根拠ないです。


HTC EVOだと特に対処しなくても更新されてるのに、
Gallaxy Tabだと更新されない。

この差がなんなのかが謎で、はまりました



0 件のコメント:

コメントを投稿