Windows Mobile开发之不同分辨率的处理与界面重新布局
市面上有很多不同分辨率的手机或者PDA,由于他们的存在,不得不在开发完一个合适的项目时移植到另外一个不同分辨率的终端上,虽然现在屏幕越来越大,分辨率越来越高,但是不同分辨率的出现仍然是现实问题。
Mobile开发中根据模拟器常用的可分,240*240,320*240,320*320,480*480,480*800等。
有网友在320*240上开发的项目运行正常,拿到640*480手机上测试,结果图片只有原来一般大小,就是因为分辨率的问题。
在开发时,为了适应不同分辨率,对于标准控件可以采用设置窗体的AutoScaleMode为Dpi即可,它会自适应屏幕大小,但是仅局限在工具箱里面的控件,不包括自定义的字体,自己绘制的图片等。
自定义的图形绘制,为了效果,采用如下:
[csharp] //默认字体大小
int penSize=4;
int fontSize=10;
//获得屏幕的Dpi,Dpi为解析度,每英寸显示的像素量
float horResolution=e.Graphics.DpiX;
if(horResolution>100.0){
penSize=5;
fontSize=11;
}
//默认字体大小
int penSize=4;
int fontSize=10;
//获得屏幕的Dpi,Dpi为解析度,每英寸显示的像素量
float horResolution=e.Graphics.DpiX;
if(horResolution>100.0){
penSize=5;
fontSize=11;
}
以上就是标准控件和自定义控件在不同分辨率上的应用。
------------------------------------------------------------------------------------
界面重新布局,也是常有的,在同一个界面上,有时需要这个控件,有时不需要,就要隐藏它,并重新布局,使之界面看起来连贯。
[csharp] int dy=25;//根据分辨率不同可以调整
this.button_des.Location = new Point(this.button_des.Location.X, this.button_des.Location.Y+dy);
int dy=25;//根据分辨率不同可以调整
this.button_des.Location = new Point(this.button_des.Location.X, this.button_des.Location.Y+dy);
摘自 whuarui2010的专栏