3

我有,我想,當手機方向的主屏幕,即當鍵盤翻轉出來像上改變運行appwidget代碼。我有一個圖像,我想在我的appwidget中的imageview中更改。我不能使用與方向相關聯的不同佈局(即「layout」和「layout-land」),因爲直到運行時我才知道圖像文件的名稱,它是在運行時創建的。無論如何,只有在顯示主屏幕時,纔會觸發代碼運行,我的appwidget處於活動狀態並且方向剛剛更改?appWidget方向代碼

我可以偵聽configuration_change廣播,但將每次運行手機切換到橫向或縱向,我只希望它顯示在主屏幕上時發生。我想不出有什麼好的方法來做到這一點。謝謝

Ryan

+0

反正知道如果主屏幕上的活動堆棧的頂部?或找出是什麼? – rgrandy 2010-01-12 14:48:56

+0

在理論上是的,看到http://stackoverflow.com/questions/6285410/android-detect-if-an-activity-is-on-the-top-of-the-history-stack,但主屏幕是具體的活動,這可能會有所不同,具體取決於您使用的設備。 – 2011-08-25 13:43:32

回答

3

對於在運行時生成的圖像沒有一個好的方法。

一個辦法是建立圖像的兩個版本,有兩個ImageViews取決於佈局/佈局土地正在使用的是可見的。 (所以RemoteViews將更新都ImageViews,但只有正確的將是可見的。)

0

傑夫,什麼是這個限制的原因是什麼?我希望能夠使用運行時生成的圖像,或者在運行時構建RemoteView,而不是使用預編譯的XML - 這非常不靈活。

0

有一個在http://groups.google.com/group/android-developers/browse_thread/thread/0eb7c016be05e0b9/d31b312e2fa8530d

更多信息在活動基本上更新來自onConfigurationChanged()的小部件,然後加入Android:configChanges =「方向」爲你顯明活動。糟糕的是,這並不包括所有用例。

+0

您可以使用服務而不是活動來執行此操作。 這肯定會覆蓋更多用例,但仍然存在AppWidget和應用程序已關閉的情況。 – 2012-11-07 16:44:50