我正在学习如何制作动态壁纸,但是我遇到了一个困境,我相信所有刚开始学习的人都会遇到这个问题。
屏幕分辨率大小如此之多,我怎么能只制作一套艺术品并在代码中重新调整大小以适应所有版本呢?我知道已经有人做过了,因为我在很多apk中看到了这些图像,并且它们被重新缩放。
如果只是一个不需要任何定位的图像,那就很容易了,但我的问题是,我必须将背景图像重新缩放以适应所有设备,我还有一些动画,这些动画适合于特定的x和y位置在背景图像上适当地放置,以便看起来整个背景都在动画,但只有部分是(这是我避免使用300张一帧一帧的动态壁纸的方法)。
因此,背景图像需要重新缩放,动画也需要按照背景图像的精确百分比进行缩放,并且它们需要坐落在特定的x和y位置。
如果您能提供任何帮助,我将不胜感激,这样我就可以开始制作动态壁纸了。
我尝试了一些东西,想为所有内容制作一个缩放器示例:int scaler; 然后在onSurfaceChanged中,scaler = width /1024; //如果较大的图像是1024.那么这将给我一个比例在任何地方都可以使用。然后使用scaleBitmap按比例缩放通过将scaler乘以图像高度和宽度,并且还使用相同的缩放器来定位,例如图像x在50处,使用相同的方法进行缩放x = scaler * 50; 这应该解决了缩放和定位问题,接下来要将所有这些内容翻译成Java,因为我是Java新手,我曾经编写过Flash和PHP程序,但这与此有很大不同,需要一些时间适应。下一件事是如何平移宽度,当您从一侧向另一侧移动屏幕时如何使图像显示出来,这是我接下来要解决的难题。现在它只显示相同的宽度,无论宽度是表面的两倍。如果您有答案或者可以告诉我在哪里找到这个信息,我将不胜感激。