appWidget方向代码

时间:2010-01-10 01:24:27

标签: android android-widget screen-orientation android-appwidget

我在appwidget中有代码,我希望在主屏幕上手机的方向发生变化时运行,就像键盘翻转时一样。我想在appwidget中的imageview中更改一个图像。我不能使用链接到方向的不同布局(即“layout”和“layout-land”),因为在运行时我不知道图像文件的名称,它是在运行时创建的。反正是否只有在显示主屏幕时触发代码才能运行,我的appwidget是否处于活动状态且方向刚刚改变了?

我可以收听一个configuration_change广播但是每次手机切换到横向或纵向时都会运行,我只希望在显示主屏幕时发生。我想不出有什么好的方法在android上做到这一点。感谢

赖安

3 个答案:

答案 0 :(得分:3)

对于在运行时生成的图像,没有一种好方法。

一种方法是构建图像的两个版本,并具有两个可见的ImageView,具体取决于所使用的布局/布局。 (因此RemoteViews会更新两个ImageViews,但只有正确的ImageViews可见。)

答案 1 :(得分:0)

杰夫,这个限制的原因是什么?我希望能够使用在运行时生成的图像,或者在运行时构建RemoteView,而不是使用预编译的XML - 这是非常不灵活的。

答案 2 :(得分:0)

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

有更多信息

基本上从Activity中的onConfigurationChanged()更新小部件,并在清单中为该Activity添加android:configChanges =“orientation”。不好的是,这并未涵盖所有用例。