BlackBerry实现类似Lwuit的Tabbed Pane效果
Lwuit虽然有BlackBerry的版本,但是对其源代码进行分析过后才发现并不能直接应用于实际项目中,它将所有版本的包括QWERTY、suretype、touch等的不同系统版本混合到一起,给裁剪带来很大难度。目前对其设计结构并不十分明确,所以源代码的裁剪过程比较混乱。虽然blackberry UI不提供类似Lwuit的分页效果,但是我们可以利用现有的API简单的模仿。等一些目前棘手的问题解决后,再慢慢研究吧。。。
两种实现方法:
1、使用屏幕Screen切换;
2、使用Graphics封装。
这两种方法都要用到滚轮的navigationMovement()事件响应函数,所以必须在需要切换的屏幕中重写这个事件。
实现一:使用屏幕Screen切换
思路:在UiApplication的构造函数中先将这两个屏幕压入堆栈。然后创建两个Sreen,在每个Screen中重写navigationMovement()方法。在navigationMovement()中获取UiApplication的对象,然后调用UiApplication.pushScreen()将另外一个界面压入堆栈。在另外一个界面中,调用UiApplication.popScreen()将自身弹出堆栈。
第一个屏幕中的代码:
/* * 滚轮滚动事件响应 * 滚轮动作:向上dy=-1,向下dy=1,向左dx=-1,向右dx=1 * @see net.rim.device.api.ui.Screen#navigationMovement(int, int, int, int) */ protected boolean navigationMovement(int dx, int dy, int status, int time) { // Dialog.alert("TrackBall moved:/r/n"+"x:"+dx+"/r/ny:"+dy); if(dx > 0 && this.isDisplayed()) { SillyDown theApp = (SillyDown)this.getApplication(); theApp.popScreen(theApp.getFirstScreen()); return true; } return false; }
第二个屏幕中的代码:
/* * 滚轮滚动事件响应 * 滚轮动作:向上dy=-1,向下dy=1,向左dx=-1,向右dx=1 * @see net.rim.device.api.ui.Screen#navigationMovement(int, int, int, int) */ protected boolean navigationMovement(int dx, int dy, int status, int time) { // TODO Auto-generated method stub if(dx < 0 && this.isDisplayed()) { SillyDown theApp = (SillyDown)this.getApplication(); theApp.pushScreen(theApp.getFirstScreen()); return true; } return false; }
点评:这种实现方式比较简单,但是效果一般。
实现二: 使用Graphics封装
思路:使用Graphics封装一个LabelField,然后在navigationMovement()方法中重绘每个Field。
代码:(正在编写中,先做个标记)
点评:可以使用这种方法封装一个Tabbed Pane,界面颜色、宽度、高度、字体等都可以自行设置,界面比较华丽,但是代码比较复杂。
BlackBerry实现类似Lwuit的Tabbed Pane效果相关推荐
- PHP防QQ列表右划,react native 实现类似QQ的侧滑列表效果
如果列表行数据需要更多的操作,使用侧滑菜单是移动端比较常见的方式,也符合用户的操作习惯,对app的接受度自然会相对提高点.最近得空就把原来的react-native项目升级了侧滑操作,轻轻松松支持an ...
- Silverlight使用DataGrid的模板列(DataGridTemplateColumn)实现类似TreeListView控件的效果
Silverlight使用DataGrid的模板列(DataGridTemplateColumn)实现类似TreeListView控件的效果 转载于:https://www.cnblogs.com/K ...
- WPF触控程序开发(三)——类似IPhone相册的反弹效果
原文: WPF触控程序开发(三)--类似IPhone相册的反弹效果 用过IPhone的都知道,IPhone相册里,当图片放大到一定程度后,手指一放,会自动缩回,移动图片超出边框后手指一放,图片也会自动 ...
- elasticsearch实现类似京东的商品搜索效果(elasticsearch动态聚合)
用到京东的对其搜索应该不会陌生,其搜索也是使用elasticsearch完成的,下图为一个搜索效果图: 搜索筛选条件会根据查询返回的结果动态变化,要实现这个功能就要用到elasticsearch的聚合 ...
- Android素描算法及实现手指在图片上左右滑动调节图片透明度,最终实现类似调节素描浓度的效果
一.前期基础知识储备 UI掌握PS这一逆天的软件,可以实现将图片转化为素描或者水彩的效果,以素描为例: 在Photoshop中打开一张人物照片,按下快捷键"Ctrl+Shift+U" ...
- ajax suggest,ajax Suggest类似google的搜索提示效果
ajax Suggest类似google的搜索提示效果 2020-11-11 14:21:34 阅读数 375 收藏 0 实现: 有了上面两句后,每个取了名的文本框会多出五个属性: 1.action ...
- Unity Shader - 实现类似镜面反射、水面扰动效果
前几天,家里出了一些问题,搞得心情很不好,面试我也取消了. 唉,反正那个伤心啊,不过,昨天处理好了. 所以说啊,家和万事兴. 加油加油!!! 所以心情好了,我又写博客了. 另外说一下:图形我今年201 ...
- Android 实现类似微信页面底部导航效果
Android 实现类似微信页面底部导航效果 参考的时候需要修改的地方做一下更改,里面有一些多余的代码没有删除. .java里面的主要代码 public class MainActivity exte ...
- HTML模仿QQ好友列表,JS+CSS实现类似QQ好友及黑名单效果的树型菜单
本文实例讲述了JS+CSS实现类似QQ好友及黑名单效果的树型菜单.分享给大家供大家参考.具体如下: 今天介绍的这个菜单堪称极品啊,不过里面的有些图标丢失了,路径还留在那,真想使用的朋友自己制作两个折叠 ...
最新文章
- 工业界AI项目落地的繁琐过程
- UVA 11134 FabledRooks 传说中的车 (问题分解)
- Zookeeper的典型应用场景(2)
- 最长递增子序列_python_算法与数据结构
- 一款非常简约好看的白色网格个人引导页HTML源码
- C++ STL list的成员函数splice的使用
- eclipse python java_如何使用Eclipse使用Python导入Java类?
- keil+flymcu+CubeMX开发STM32F407
- 2022世界机器人大会开幕,有屋智能主动终止IPO,《2022人工智能发展白皮书》发布,2022可穿戴设备出货量将达3.44亿台
- 个人云存储的两大强者比拼 百度云VS苹果iCloud
- 计算机工程中级职称怎么考,以前中级职称是要考什么计算机-计算机软考中级职称哪个好考...
- 小程序跳转小程序,小程序跳转公众号,小程序跳转h5
- 刘霞:“手艺人鞋吧”圆了创业梦_创业时代_科技时代_新浪网
- Java征兵系统(可拓展)
- MYSQL相比于其他数据库有哪些特点?
- 使用k3s部署轻量Kubernetes集群快速教程
- 2022年四川省安管人员报名即将结束!C证报名11月9日截止!
- 手机android player病毒怎么解决,不要担心手机中毒!教您一些有关如何彻底清除Android手机上的病毒的提示...
- 浪潮服务器 引导,浪潮服务器RAID配置及系统引导
- 惠普电脑怎么用u盘重装Win10系统