3

ホーム画面で電話の向きが変わったとき、つまりキーボードがひっくり返ったときなどに実行したいappwidgetのコードがあります。appwidget の imageview で変更したい画像があります。実行時に作成される画像ファイルの名前は実行時までわからないため、方向にリンクされたさまざまなレイアウト (つまり、「layout」と「layout-land」) を使用できません。ホーム画面が表示され、appwidget がアクティブで、向きが変更された場合にのみ実行するコードをトリガーする方法はありますか?

configuration_change ブロードキャストをリッスンすることはできますが、これは電話が横向きまたは縦向きに切り替わるたびに実行され、ホーム画面が表示されているときにのみ実行されます。Androidでこれを行う良い方法は考えられません。ありがとう

ライアン

4

3 に答える 3

3

実行時に生成される画像に対してこれを行う良い方法はありません。

1 つのアプローチは、イメージの両方のバージョンをビルドし、使用されているレイアウト/レイアウト ランドに応じて表示される 2 つの ImageView を用意することです。(したがって、RemoteView は両方の ImageView を更新しますが、正しい方のみが表示されます。)

于 2010-01-22T01:14:57.330 に答える
0

ジェフ、この制限の理由は何ですか? プリコンパイルされた XML を使用するのではなく、実行時に生成された画像を使用したり、実行時に RemoteView を構築したりできるようにしたいと考えています。これは非常に柔軟性がありません。

于 2010-06-30T16:38:55.683 に答える
0

詳細はhttp://groups.google.com/group/android-developers/browse_thread/thread/0eb7c016be05e0b9/d31b312e2fa8530dにあります

基本的に、アクティビティの onConfigurationChanged() からウィジェットを更新し、マニフェストにそのアクティビティの android:configChanges="orientation" を追加します。悪いことに、これはすべてのユースケースをカバーしているわけではありません。

于 2010-07-08T12:52:11.297 に答える