cocos2dx 怎么获得android屏幕分辨率

cocos2dx 怎么获得android屏幕分辨率,第1张

写一个ViewAutoScale函数,如下:

#include "ViewAutoScaleh"

USING_NS_CC;

bool IsMatchDisplay(int w, int h, CCSize& size )

{

return (w==sizewidth && h==sizeheight) || (h==sizewidth && w==sizeheight);

}

#if (CC_TARGET_PLATFORM == CC_PLATFORM_WIN32)

int ViewAutoScale(cocos2d::CCEGLView view,

void title,

int width,

int height,

cocos2d::CCSize supportDisplay,

int displays,

int defaultWidth,

int defaultHeight)

{

if(view == NULL)

{

return -1;

}

for (int i=0; i < displays; i++)

{

if (IsMatchDisplay(width, height, supportDisplay[i]))

{

view->Create((LPCTSTR)title, width, height);

return i+1;

}

}

view->Create((LPCTSTR)title, defaultWidth, defaultHeight);

view->setScreenScale(min((float)width/ defaultWidth, (float)height/ defaultHeight));

view->resize(width, height);

view->centerWindow();

return 0;

}

#endif

#if (CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID)

int ViewAutoScale(cocos2d::CCEGLView view,

void title,

int width,

int height,

cocos2d::CCSize supportDisplay,

int displays,

int defaultWidth,

int defaultHeight)

{

if(view == NULL)

{

return -1;

}

for (int i=0; i < displays; i++)

{

if (IsMatchDisplay(width, height, supportDisplay[i]))

{

return i+1;

}

}

view->create(defaultWidth, defaultHeight);

return 0;

}

#endif

#if (CC_TARGET_PLATFORM == CC_PLATFORM_IOS)

int ViewAutoScale(cocos2d::CCEGLView view,

void title,

int width,

int height,

cocos2d::CCSize supportDisplay,

int displays,

int defaultWidth,

int defaultHeight)

{

return 0;

}

#endif

修改jni/helloworld/maincpp文件:

void Java_org_cocos2dx_lib_Cocos2dxRenderer_nativeInit(JNIEnv env, jobject thiz, jint w, jint h)

{

cocos2d::CCSize sSupportDisplay[]={cocos2d::CCSize(480, 320)};

if (!cocos2d::CCDirector::sharedDirector()->getOpenGLView())

{

cocos2d::CCEGLView view = &cocos2d::CCEGLView::sharedOpenGLView();

view->setFrameWidthAndHeight(w, h);

// if you want to run in WVGA with HVGA resource, set it

ViewAutoScale(view,

NULL,

w,

h,

sSupportDisplay,

sizeof(sSupportDisplay)/sizeof(CCSize),

480, 320);

获取浏览器可见区高度(滚动条宽度以排除)

documentdocumentElementclientHeight

获取浏览器可见区宽度(滚动条宽度以排除)

documentdocumentElementclientWidth

获取文档高度(建议用浏览器可见区域高度)

documentbodyclientHeight

用screen获得的为屏幕分辨率,只有用户在全屏看网页时网页大小才等于屏幕的分辨率

设置body的背景

documentbodystylebackgroundImage=‘地址’

这种方法是比较精确的控制方法,可以根据获取到的相关大小来控制背景

这种方法的好处就是:如果你的同一个背景有很多不同的分辨率,在页面呈现上会更美观

缺点是:必须根据多种不同大小制作多张背景,且调用哪张不易确定

用绝对定位设置背景的方式的好处是:方便代码的书写

绝对定位缺点是:背景要大而清晰,否则在大尺寸屏幕上会出现背景模糊的情况,且若比例与屏幕比例不同(如4:3和16:9),会变形

在命令行中输入“adb shell” ;进入shell之后,再输入“cat /system/buildprop  grep "product"”  设备信息主要是存放在“/system/buildprop”文件,通过“cat”命令就可以查看了。

adb的全称为Android Debug Bridge,就是起到调试桥的作用。通过adb我们可以在Eclipse中方便通过DDMS来调试Android程序,说白了就是debug工具。

它的主要功能有:

运行设备的shell(命令行)

管理模拟器或设备的端口映射

计算机和设备之间上传/下载文件

将本地apk软件安装至模拟器或android设备

参考资料:

adb驱动—百度百科

以上就是关于cocos2dx 怎么获得android屏幕分辨率全部的内容,包括:cocos2dx 怎么获得android屏幕分辨率、网页中到底怎样根据不同分辨率设置网页背景图片铺满屏幕我的一种想法是用JS读取屏幕分辨率。求老师指教、如何用adb命令 获得Android手机分辨率等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/10176784.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-06
下一篇 2023-05-06

发表评论

登录后才能评论

评论列表(0条)

保存