libgdx屏幕适配分析(1)

libgdx有个虚拟分辨率的概念,我们在初始化Stage时,可以传入我们

定义的虚拟分辨率,

new Stage(new ScalingViewport(Scaling.stretch, 480, 800, new OrthographicCamera()));

Scaling.stretch 这个是你的适配策略,适配策略可以选择下面的这些:

<pre name="code" class="java">	/** Scales the source to fit the target while keeping the same aspect ratio. This may cause the source to be smaller than the
	 * target in one direction. */
	fit,
	/** Scales the source to fill the target while keeping the same aspect ratio. This may cause the source to be larger than the
	 * target in one direction. */
	fill,

	//fillX这个适配策略是:宽度即X方向,缩放到和屏幕一样大小,即fill the target in the x direction,而且高度即Y方向
	//上根据X方向的缩放比进行缩放(keeping the same aspect ratio),这样图形就不会变形,以为X,Y方向上的缩放比相同,
	//当时会出现一个问题,就是Y方向上可能出现黑边,也可能超出显示屏幕。这种对宽度要求固定的可以使用。对高度做些处理。
	//比如我们根据宽度的缩放比,计算出虚拟高度,然后把我们的图片根据这个虚拟高度摆放。
	/** Scales the source to fill the target in the x direction while keeping the same aspect ratio. This may cause the source to be
	 * smaller or larger than the target in the y direction. */
	fillX,
	/** Scales the source to fill the target in the y direction while keeping the same aspect ratio. This may cause the source to be
	 * smaller or larger than the target in the x direction. */
	fillY,

	//stretch长和宽都完全缩放到和屏幕一样大小,这样可能产生变形,如720*1280的屏幕,高度方向的缩放比1208/800 = 1.6
	//宽度方向的缩放比720/480 = 1.5,那么,因为长度和宽度方向的缩放比不同,就会到时我们的图片显示到
	//屏幕上时,出现变形拉伸。
	/** Scales the source to fill the target. This may cause the source to not keep the same aspect ratio. */
	stretch,
	/** Scales the source to fill the target in the x direction, without changing the y direction. This may cause the source to not
	 * keep the same aspect ratio. */
	stretchX,
	/** Scales the source to fill the target in the y direction, without changing the x direction. This may cause the source to not
	 * keep the same aspect ratio. */
	stretchY,
	/** The source is not scaled. */
	none;

480,800是虚拟分辨率,我们做图片时,就按照这个

尺寸作图就可以了,而且我们做界面,排布局时,也根据这个大小,放置我们的UI元素,显示到屏幕上时,会根据我们的适配策略进行缩放,

然后显示到屏幕上。

时间: 2024-10-10 09:35:19

libgdx屏幕适配分析(1)的相关文章

cocos2d-x屏幕适配原理分析

cocos2d-x作为著名的cocos2d游戏开发框架的C++实现者,最近一年发展迅猛.越来越多的app使用它实现快速多平台部署,从最初的ios,android,win32等到新近的html5,实现移动,客户端到浏览器全覆盖,不得了~~ 开发移动应用的屏幕适配和爱情一样是一个从洪荒时代就存在的永恒命题,根本目的是实现在不同设备上用户体验的统一. cocos2d-x在cocos2d-2.0-x-2.0.4版本之前没有提供解决的方案,开发者只能自己解决,其中一些方法见 这里从2.0-x-2.0.4开

cocos 屏幕适配源码分析及VisibleSize,VisibleOrigin

其实这个话题应该是从第一天接触cocos就会碰到的问题,我始终没能完全理解那些文章的意思,只是大概知道是怎么回事,仅此而已,智商捉急呀!!今天也是花了很长的时间去理解,现在总算有点眉目了,就把它记录下来,以后可以常回顾一下. 不废话了,进入正题.所谓的屏幕适配到底需要我们完成什么样的功能呢?这才是我们研究这个问题需要解决的东西,看了很多文章写屏幕适配,大神们总是在侃侃而谈,殊不知我们这些学渣理解能力确实有问题,所以经常一篇文章读下来,确实能理解里面讲的是什么,但是为什么要解决这个问题,为什么要这

Android屏幕适配原理

大纲 1.android中res目录下的文件夹所对应屏幕尺寸 2.用dp表示尺寸的原理 3.对于720p尺寸的适配需要注意什么 4.ui切图按什么尺寸给最好 参考:http://www.360doc.com/content/12/0301/17/5087210_190881395.shtml 几个概念: 1) 屏幕密度(dpi) :dot per inch,即每英寸像素数. ldpi(120),mdpi(160),hdpi(240),xhdpi(320) 计算方法: 以480x854,4.0in

Android 多屏幕适配 dp和px的关系

一直以来别人经常问我,android的多屏幕适配到底是怎么弄,我也不知道如何讲解清楚,或许自己也是挺迷糊. 以下得出的结论主要是结合官方文档进行分析的https://developer.android.com/guide/practices/screens_support.html android由于碎片化太严重,而导致市面上出现非常多的种类尺寸手机设备,当然也包括非常奇葩的分辨率手机.所以我们在布局的时候使用px作为单位显然不能很好的做到多屏幕的适配.其实在官方文档中有介绍一种解决多屏幕适配的

Android屏幕适配问题详解

上篇-Android本地化资源目录详解 :http://www.cnblogs.com/stafen/p/3833048.html 单位: px(像素):屏幕上的点. in(英寸):长度单位. mm(毫米):长度单位. pt(磅):1/72英寸. dp/dip(与密度无关的像素):一种基于屏幕密度的抽象单位.在每英寸160点的显示器上,1dp = 1px,在大于160点的显示器上可能增大.一般用于位置和尺寸属性的单位. dpi:表示当前屏幕的密度. sp(与刻度无关的像素):主要用于字体大小单位

Android学习-- 屏幕适配

对于从事android应用开发的朋友来说都应该知道,现在的安卓手机的屏幕类型十分繁多, 大小尺寸,长宽比例都不尽相同,同一个界面在不同分辨率的手机上可能出现布局错乱,控件跑位的现象.做屏幕的适配不可能实现在每种屏幕上显示出的界面 效果完全一致.只能靠平时的编程习惯和经验是的界面在不同的屏幕尺寸在不会出现过分的走位,在可遇见范围内控制界面在不同屏幕下的变化,并做出相应调 整.那么偶们应该如何做到屏幕的适配呢?下面我就以我的开发经验来说说吧. 1.尽量使用线性布局(LinearLayout)和相对布

cocos2d-x 2.x屏幕适配基础

一开始我就忽略了屏幕适配的问题,现在才发现它是多么的重要.通过实践才领悟了其基础概念,而屏幕适配的策略是建立在其上的,有很多,但我还没有认真研究.这里仅把自己对屏幕适配基础知识进行一个梳理. 关于屏幕适配,有一个基础单位:像素.像素构成了分辨率,不应该把分辨率理解为大小.因此这里不说大小,只说分辨率:不说长宽,只说横纵. 1.FrameSize 这个最好理解,就是设备的分辨率,不同的手机有不同的分辨率.事实上,在PC上面开发也有一个设备分辨率,那就是在main.cpp里面设置的窗口分辨率,这个窗

Cocos2d-JS屏幕适配(NO-BORDER模式)

距离上一篇博客已经有将近一年时间,没有写什么一个是因为一直太忙,另外一个也是不知道要写什么,还是做游戏项目,不过从手游转到了Html5游戏,继续使用Cocos2d,语言换成了JS. 不多叙旧,这次简单说下Cocos2d-JS的适配问题,上一个项目(手机QQ空间玩吧的<点点萌萌消>,欢迎试玩^_^)没有考虑分辨率适配问题,直接采用的是640*960的方式进行开发,基本上不用考虑适配问题. 当前这个项目需要考虑屏幕白边问题,今天有点闲工夫,就慢慢研究了一上午,还有点意思.说有点意思是因为NO_BO

Android TV开发总结(五)TV上屏幕适配总结

前言:前面几篇总结一些TV上的小Sample,开源到GitHub:https://github.com/hejunlin2013/TVSample, 点击链接,可以持续关注.今天总结下TV上屏幕适配.: 看下Agenda: 一.屏幕适配的一些背景知识 二.TV屏幕适配怎么适配?有哪些规则? 三.多屏幕适配,android读取res/drawable优先级是什么? 四.屏幕分辨率及density .densityDpi代码 一.屏幕适配的一些背景知识 介绍几个在Android屏幕适配上非常重要的名