【发布时间】:2011-08-02 21:14:10
【问题描述】:
要快速了解问题的背景,请参阅 Create Transparent Mainscreen in Blackberry .
我面临的问题是在主屏幕上绘画孩子。 我希望我的主屏幕看起来像原始要求一样透明/半透明,并添加我的其他 UI 元素,例如经理/领域在它上面。
所以我使用的 UI 元素是 3 个 BitmapField(s),应该使用 BorderFactory.createSimpleBorder() 创建粗边框,并为 Field.VISUAL_STATE_FOCUS 和 Field.VISUAL_STATE_NORMAL 状态添加两种颜色。所有这些 BitmapFields 都被添加到它们各自的 HorizontalFieldManger 中,而 HorizontalFieldManger 又被添加到屏幕上。
所以问题的一部分是,当我在这些 BitmapFields 中进行导航时,添加到 BitmapFields 的边框的“某些区域”没有按照指定的状态(正常、焦点)进行绘制。
其他问题是,在 Torch 9800 上,当我从上到下导航时,我看到默认滚动发生,这应该是正常的,但是在每次滚动时,当移动发生在屏幕上时,我的 BitmapField 会在屏幕上留下一些尾巴/裂缝滚动。
当我使用普通屏幕(不使用 subpaint 使屏幕透明)时,不会发生此类事情。
你知道这里发生了什么吗..?
- 大奥
【问题讨论】:
-
我已经阅读了您的两个问题,但我不明白透明主屏幕是什么。你想看到“透明度”在哪里?主屏幕后面没有任何东西可以让透明度通过。
-
嗨迈克尔,谢谢你的问题。我的应用程序有一个默认的主屏幕,我允许用户通过菜单选择一个选项来进入新屏幕。用户选择的新主屏幕应该显示其内容,但同时用户应该能够看到旧/上一个屏幕的内容。为此,新屏幕应具有透明度以让用户看穿。希望这能有所帮助——
-
hmmm.... BB 不是只向堆栈上最顶部的屏幕发出绘制命令吗?因此,在底层屏幕上被遮挡的任何像素(实际上只是残留的位图)都不会被重新绘制?
-
yes BB 向堆栈上最顶层的屏幕发出绘制命令,但在这种情况下被遮挡的像素不是底层屏幕,而是当前最顶层屏幕(透明屏幕)的像素
标签: blackberry