CrossAPP第一课

来源:互联网 发布:网络大电影众筹平台 编辑:程序博客网 时间:2024/06/07 01:50

1:坐标系:

CrossApp采用的坐标系是屏幕坐标系,即左上角为原点,向右为X轴增长方向、向下对应Y轴增长方向

视图类CAView是整个CrossApp引擎最基本的类,负责将各式各样的界面呈现出来,我们在App中所能看见的的一切界面其实就是一个个CAView的组合。CAView负责在屏幕上定义矩形区域,在展示用户界面及响应用户界面交互方面发挥关键作用。每个视图对象要负责渲染试图矩形区域中的内容,并响应该区域内发生的操作事件,视图是应用程序用户交互的重要机制。
除了显示内容和处理事件之外,试图还可以管理一个或多个子视图。我们可以在一个view上面添加多个子view,而作为父view,即父节点,负责管理其直接子视图,并根据需要调整他们的位置和尺寸,以及响应他们没有处理的事件。
        根据类说明我们可以得出以下结论:1、所有能看到的都是CAView的派生类。2、CAView上面可以添加子CAView。3、父节点管理子视图

坐标系有3个属性 Frame Bounds Center,Bounds就是说不能缩放,cocos2d-x当中也有这个类似的;

2:屏幕适配:

PX:pixels,就是绝对像素。大小固定,不会随着屏幕不同而改变

PPI:Pixels Per Inch所表示的是每英寸所拥有的像素(Pixel)数目。因此PPI数值越高,即代表显示屏能够以越高的密度显示图像。当然,显示的密度越高,拟真度就越高。

DPI:每英寸所包含的点,在Android设备上,通常以DPI来表示设备屏幕的显示精细度。通常情况下,PPI和DPI可以表示同一个概念,PPI主要针对显示设备,DPI更多应用于打印输出设备,但都表示每英寸所包含的像素点

CrossApp提供的dip与px相互转换
将dip转为px
_px(float dip):static inline float _px(float dip) { return dip * CAApplication::getApplication()->getAdaptationRatio(); }
将px转为dip
_dip(float px):static inline float _dip(float px) { return px / CAApplication::getApplication()->getAdaptationRatio(); }

CrossApp提供的Dip类型数据
CADipPoint:点
CADipSize:面积
CADipRect:区域(包含一个点位点和面积)


void FirstViewController::viewDidLoad(){    // Do any additional setup after loading the view from its nib.//获得屏幕的Bounds  大小不缩放CCRect winRect = this->getView()->getBounds();   //获得屏幕的大小  CADipSize里面进行了适配处理CADipSize winSize = winRect.size;//CAView* winView = CAView::createWithColor(CAColor_green);//设置 FramewinView->setFrame(CADipRect(0,0,winSize.width,winSize.height));//添加到根节点this->getView()->addSubview(winView);CAView*  winView2 = CAView::createWithColor(CAColor_yellow);//尽量  按比例添加  不要写 400,500等数字,不然屏幕大小变了之后,winView2不会按比例跟着变化winView2->setFrame(CADipRect(0, winSize.height - winSize.height / 3, winSize.width / 3, winSize.height / 3));this->getView()->addSubview(winView2);CAView*  winView3 = CAView::createWithColor(CAColor_red);//winView3->setFrame(CADipRect(winView2->getFrame().size.width,winSize.height - winView2->getFrame().size.height - winSize.height / 3,winSize.width / 3, winSize.height / 3));this->getView()->addSubview(winView3);}



0 0
原创粉丝点击