界面在手机和模拟器上显示的差异
来源:互联网 发布:人工智能体验馆 南京 编辑:程序博客网 时间:2024/05/02 11:12
高通告诫我们:程序一定要多多在手机上调试。
刚入门时,觉得模拟器是个好东西,显示逼真,想调就调。逐渐地,我发现,在模拟器上调试好的程序,在手机上并不一定能按预计运行。
反差最大的莫过于界面,第一次把程序拷到手机上,期望很大,也很自信,结果——惨不忍睹。
以下是我给大家的一些建议:
1.显示中文时,不要直接在屏幕上打印,把中文文字放在资源(bar)文件里。
//在屏幕上直接打印中文,在手机上会变成乱码
//资源文件便于修改,同时提高程序的可移植性
//修改brx文件后,要重新编译生成新的bar
2.显示文字时,不要固定行高,根据屏幕行高计算合适的显示行高。
//不同的屏幕行高不一样,如果设为固定值,在有的屏幕上文字重叠,有的屏幕文字稀疏。显示行高设为屏幕行高时,是最密的显示,如果有需要,可以适当加宽
//用IDISPLAY_GetFontMetrics得到屏幕行高
3.显示非居左、非居右文字时,通过IDISPLAY_MeasureTextEx得到前段文字的长度,适当调整得到显示的起始位置。
//通过IDISPLAY_DrawText中的x、y参数控制文字的显示位置。x是距屏幕右边的像素,y是本行的上边距离屏幕上边的像素
//重要提示:IDISPLAY_DrawText函数在模拟器上和在手机上的返回值可能不一样!所以请多多调试!给一组数据:字符串“垂直速度:”(加粗)在模拟器上宽度为83像素,手机上是180像素。
4.AEERect限定的区域里,即使没显示内容,也会盖住已显示的文字
//帮助里说IDF_TEXT_TRANSPARENT可以避免覆盖,大家可以试试
5.文字自动换行
//每个应用都有说明、关于,所以自动换行肯定需要。
代码如下:
while ((totalCh > 0) && (*psz != NULL))
{
// 获取一行中可容纳字符数的信息
pixelWidth = IDISPLAY_MeasureTextEx(pMe->m_pIDisplay, font, (AECHAR *) psz, -1, di.cxScreen - 5, &pnFits);
IDISPLAY_DrawText(pMe->m_pIDisplay, AEE_FONT_NORMAL, psz, pnFits, 5, dy, 0, 0);
psz += pnFits; // 将指针移到下一个要显示的段
totalCh -= pnFits; // 减少仍需要显示的字符总数
dy += charHeight; // 将下一行置于上一行的charHeight像素以下。
IDISPLAY_Update(pMe->m_pIDisplay);
if (totalCh < pnFits)
pnFits = totalCh; // 如果总数小于 pnFits, 则调整 pnFits
}
6.AEERect中数字、字符串显示差异
//在模拟器中,数字居左,字符串居中
//在我们的手机上,数字数字居左,字符串居右。我对此无奈,还没找到控制的方法。
显示与OEM有关,我遇到的问题不一定大家会遇到,仅供参考:)
- 界面在手机和模拟器上显示的差异
- Android在Root的前提下,获得手机已经连接的所有wifi和密码,显示在界面上
- LWUIT在不同手机上的性能差异
- 手机做模拟器,在eclipse和终端显示乱码
- 调用手机的摄像头,并且返回照片显示在程序界面上.
- Android Google map在模拟器显示正常,在手机上不显示
- Android布局中相同xml文件不同手机显示的界面可能不一样(如华为、小米手机有差异)
- android studio在模拟器上显示中文乱码的解决方案
- 关于MTK模拟器中字符显示正确,手机上显示乱码的解决方式!!(原创)
- ipchains 和 iptables 在语法上的主要的差异
- 解决网页在手机端显示界面很小的问题
- 获取互联网上的图片并显示在界面上
- sizeof()在指针和数组上的差异
- Java和C++在细节上的差异
- Java和C++在细节上的差异(转)
- Android和iOS在交互细节上的差异
- 北京和硅谷在创新上的差异
- Java和C++在细节上的差异(一)
- 云上的日子
- WebService简单原理(转载)
- action-mappings之attribute属性
- Atari第三次面临纳斯达克摘牌警告
- Struts集成Spring出错:Servlet action is not available 的解决
- 界面在手机和模拟器上显示的差异
- Javascript实现页面跳转的几种方式
- 证实了脚下踩的确实是坚实的黄土路的时候,则要毫不犹豫,撒腿就跑。
- 判断空间射线是否穿过空间三角形的程序实现
- 进程三种注入方式(转)
- VC 6.0调试 之 DLL调试
- 男人卖猪
- 管理也很讲究个人魅力,但个人魅力也要公司基础
- c# SystemHotKey