2012-02-01 461 views
3

我一直致力于通过在画布上放置位图图像来创建动态壁纸。我创建了适合480x800屏幕尺寸的图像。问题是,当我将动态壁纸加载到平板电脑或更大的屏幕尺寸时,它不会填满整个屏幕或缩放。如何将动态壁纸缩放到屏幕大小?

我尝试过使用DisplayMetrics,但我还没有能够得到它在生活壁纸类内工作。关于如何缩放图像以适应动态壁纸中的屏幕大小的任何想法?

谢谢!

+1

我认为你真正的问题是“如何获得屏幕的大小”,不是吗?为什么不能在动态壁纸类中使用“DisplayMetrics”?我认为这是可行的。如果可能的话分享你的 – Huang 2012-02-01 03:47:09

+0

。 或者你会发现http://www.vogella.de/articles/AndroidLiveWallpaper/article.html – NovusMobile 2012-02-01 10:43:37

+0

DisplayMetrics似乎不被允许在WallpaperService类中。有没有人可能有一个如何将动态壁纸缩放到不同屏幕尺寸的例子? – Gatekeeper 2012-02-03 03:41:42

回答

2
Display display = ((WindowManager) getSystemService(Context.WINDOW_SERVICE)).getDefaultDisplay(); 
width = display.getWidth(); 
height = display.getHeight(); 
0

您需要根据壁纸的宽度和高度来缩放位图。你可以在onSurfaceChange()方法中获得宽度和高度。是的,不要忘记把你的宽度乘以2来制作视差滚动。

0

尽量不要使用“size();”命令。使用“fullScreen();”它将使您的壁纸适应其运行的任何设备的屏幕大小。

您也可以在代码中的任意位置使用“displayWidth”和“displayHeight”来提供帮助。