这是我的问题。我有一个可以在纵向屏幕方向上完美运行的 appwidget。但是,当我将屏幕方向更改为横向时,主屏幕启动器会自动更改 appWidget 的宽度和高度,而问题是在横向模式下,主屏幕启动器未正确设置小部件的高度。所以,我需要检测屏幕方向是否改变并重新调整我的 appwidget 的大小。我已经用谷歌搜索了它,但我仍然不知道我该怎么做。如果这是一项活动,那很简单,但事实并非如此。如果有人对此有任何想法,我将不胜感激。
问问题
1218 次
2 回答
0
当屏幕方向改变时,您的 AppWidgetProvider onUpdate 方法会被调用。您可以使用以下功能来获取您是处于纵向还是横向模式,然后基于此更新您的远程视图。
private static boolean isPortrait (Context cx) {
Display d = ((WindowManager) cx.getSystemService(Context.WINDOW_SERVICE)).getDefaultDisplay();
if (d.getWidth() == d.getHeight()) {
return false;
} else if (d.getWidth() < d.getHeight()) {
return true;
} else {
return false;
}
}
希望这可以帮助。
于 2013-01-09T19:31:04.853 回答
0
在 values-port 和 values-land 中定义 bools.xml
在值端口/bools.xml
<?xml version="1.0" encoding="utf-8"?> <resources> <bool name="portrait">true</bool> </resources>
在 values-land/bools.xml
<?xml version="1.0" encoding="utf-8"?> <resources> <bool name="portrait">false</bool> </resources>
通过代码中的 Context.getResources() 获取布尔值
private static boolean isPortrait(Context context) { return context.getResources().getBoolean(R.bool.portrait); }
于 2016-05-04T03:14:47.783 回答