Android SurfaceView中的分辨率独立性

Tom*_*Tom 9 android screen-resolution

我目前在开始的Android游戏引擎,首次进军平台,提供到位然而使用SurfaceView绘制图形时,我不确定接近分辨率独立性的最好方法的基础知识.

寻找指针,以如何保持游戏/精灵等等都看着屏幕相同的独立,显然它不会是有效的扩展所有精灵每帧或存储许多变化对于不同分辨率

Cas*_*eyB 5

您只需在加载它们时缩放精灵.我猜你是从资源中加载它们作为位图,对吧?如果是这样,那么你需要做的就是这样:

BitmapFactory.Options options = new BitmapFactory.Options();
options.outHeight = spriteHeight * scale;
options.outWidth = spriteWidth * scale;

Bitmap sprite = BitmapFactory.decodeResource(mContext.getResources(), R.drawable.sprite, options)
Run Code Online (Sandbox Code Playgroud)

其中规模基于屏幕尺寸的变化.

  • 好吧,我做了一些研究,结果是outHeight和outWidth outWidth是输出值.您需要:将inDensity设置为位图原生的屏幕密度.将inTargetDensity设置为运行应用程序的设备的屏幕密度.并将inScaled设置为true.然后,您将获得一个为您的屏幕缩放的位图,您可以从outWidth和outHeight值获得大小. (4认同)