【问题标题】:How to handle screen rotation on Blackberry如何在黑莓上处理屏幕旋转
【发布时间】:2013-06-30 08:42:08
【问题描述】:

在黑莓中处理屏幕旋转的正确方法是什么?我使用不同的分辨率,我所要做的就是在我的字段中处理位图和边距。我当前的项目中有一个管理屏幕旋转的要求,我不知道有什么技术方法。

为了记录,我做了一个快速的谷歌搜索,我发现的只是关于如何禁用轮换的信息,所以我开始认为轮换处理有点困难。

【问题讨论】:

  • 重写sublayoutsublayout 方法Field/Manager/Screen 是适当处理屏幕旋转所必需的。每当方向发生变化时,Screens 的 layout/sublayout 方法及其所有子对象都会被调用。在这些方法中,您可以通过比较 Display.getOrientation()Display.ORIENTATION_LANDSCAPE/Display.ORIENTATION_PORTRAIT 等来检查方向,并调整 UI 组件的大小/修改。如果您共享 2 个不同方向的任何一个屏幕草图,那么它将帮助其他人指导您如何处理 -
  • 该屏幕的方向更改事件。从该解决方案中,您可以了解如何将该解决方案应用于其他屏幕/ui 字段。检查这个有用的链接,stackoverflow.com/questions/7789734/…
  • 感谢@Rupak,来自 SO 的链接非常有帮助
  • 试试下面链接的答案stackoverflow.com/questions/7789734/…

标签: java blackberry


【解决方案1】:

首先,您需要覆盖子布局。您可以使用此代码:

protected void sublayout(int width, int height)
{       
    SetLayout();
    super.sublayout(width, height);
}

在设置布局中,您可以设置控件的大小和位置。您如何执行此操作将取决于您使用的 FieldManager。我使用AbsoluteFieldManager 并根据屏幕宽度和高度的百分比来定位和调整所有字段的大小。例如:

private void SetLayout()
{
    int screenWidth = Display.getWidth();
    int screenHeight = Display.getHeight();
    cmdOk.SetSize((int) (screenWidth * 0.2), (int) (screenHeight * 0.1));
    manager.setPosChild(cmdOk, 0, screenHeight - cmdOk.getHeight());
}

希望对你有帮助

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-11-16
    • 2012-10-04
    • 2011-02-06
    • 1970-01-01
    • 1970-01-01
    • 2011-09-12
    • 2023-03-07
    相关资源
    最近更新 更多