避免壁纸跨越5个屏幕拉伸。

5
我一直在面临一个问题。如何在Android中设置壁纸,而不会将其拉伸到5个主屏幕上。明确一点,我有一个分辨率为320x480像素的资源图片,当我将其设置为Android中的壁纸时,它会被拉伸到5个屏幕上,但我希望它只显示在1个屏幕上(或在所有屏幕上显示相同的图像),懂了吗?
我不想使用动态壁纸。

你解决了吗?请帮帮我,我也遇到了这个问题。 - Bhavesh Hirpara
5个回答

3
唯一能让应用程序实现此功能的方法是使用动态壁纸。
壁纸分为两种类型,静态和动态。静态背景的滚动由启动器应用程序控制。这就是为什么LauncherPro和ADW可以控制滚动的原因。当用户选择动态壁纸时,启动器只显示LWP想要渲染的内容,因此LWP控制滚动(如果有的话)。这就是MultiPicture LWP解决问题的方式。
因此,您唯一的选择是实现自定义启动器(我怀疑您不希望为此次要功能而这样做),或者实现动态壁纸。
顺便说一下,setWallpaperOffsetSteps是由启动器在动态壁纸上调用的内部方法,因此LWP知道它应该绘制的位置。您不能直接调用它,但是您可以监听LWP中的onOffsetsChanged来促进自己的滚动实现。

1

不可能的。也许有私人库可以解决这个问题。


1

当您收到“添加到主屏幕”弹出窗口时,请轻触并长按屏幕

选择“壁纸”

选择“主屏幕壁纸”

当您从图库或资源管理器中选择了一张图片后,您将进入一个屏幕,在该屏幕上,您可以裁剪您的图像以适应主屏幕。

在底部,您可以选择两种类型的裁剪。

一个大的裁剪,用于在5个屏幕上设置它,以及一个小的裁剪,以在所有5个屏幕上使用相同的背景。请参见截图:

select crop type

选择后者,裁剪您的图片并保存。


谢谢tdje!我正在寻找一种编程方式来实现这个!:( 我正在开发一个应用程序,我希望这个应用程序可以按照我说的方式设置壁纸! - nithinreddy
哦哈哈,我没从你的问题中理解出来。如果您想以编程方式进行操作,请使用WallpaperManager.setWallpaperOffsetSteps(float xStep, float yStep) http://developer.android.com/reference/android/app/WallpaperManager.html。我不确定,但将您的步长设置为1或0。祝好运。 - tdtje
我会试试看的,我已经尝试了0,但是没有成功。但是这意味着什么,你明白吗? - nithinreddy

0

我进入了设置,点击了主屏幕,然后进入了壁纸。我选择了我的图片并使用相册应用程序进行了裁剪。这个应用程序在顶部有一个设置,可以选择是否拉伸。我正在运行Android 4.4。


0

显然这不是原生的Android功能。但是,您可以获取可以执行此操作的应用程序。 "Launcher Pro"和"ADW EX Launcher"都可以禁用滚动,但您可能需要创建一个具有正确大小的横向矩形图像,并在其边框处留出空白。

或者,应用程序“MultiPicture Live Wallpaper”可能可以满足您的需求。一位评论者写道:“让我使用与我的手机屏幕相同大小的图片作为启动器所有页面的背景。不确定为什么这不是Android的一部分。

编辑:在尝试这些之前,请查看tdtje的帖子。如果有效,则太棒了。我不确定哪个版本的Android可用,因为我正在使用没有该功能的2.1。

进一步编辑:在下面的评论中,Martyn给我们提供了第一手意见!


我使用ADW EX Launcher,它具有防止壁纸滚动的功能。顺便说一句,将壁纸设置为不滚动也会使您的主屏幕非常快!这是最好的启动器应用程序 - 支持开发人员并购买它 - 它绝对物有所值。请注意 - 我与开发人员没有任何关联,过去两年我使用了所有启动器,而这个是迄今为止最好的。 - Martyn
我想通过编程获取功能,以便将其包含在应用程序中! - nithinreddy
啊...不确定!:D 我会四处搜索。 - Samthere

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接