CrossAPP第一课

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);
	//设置 Frame
	winView->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);




}



猜你喜欢

转载自blog.csdn.net/djb100316878/article/details/48531061
今日推荐