如何将整个图像作为壁纸贴在屏幕上

man*_*ken 5 android wallpaper

我正在开发一个应用程序,从图库中选择一个图像,然后将该图像设置为壁纸.但这里的问题是只有部分图像被设置为壁纸而不是整个图像,但我想将整个图像设置为壁纸.你能告诉我怎么办?

这是我的代码......

public class Scaleimage extends Activity {
    /** Called when the activity is first created. */

    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        String FileName;
        File file = new File("/sdcard/pictures");   
        File[] imageFiles = file.listFiles( );
        if(imageFiles.length > 0 ) {
            FileName = imageFiles[0].getName();
        final WallpaperManager wallpaperManager = WallpaperManager.getInstance(getBaseContext());   
        Bitmap myBitmap =  BitmapFactory.decodeFile("/sdcard/pictures" + "/" + FileName); 

        DisplayMetrics displayMetrics = new DisplayMetrics();
        getWindowManager().getDefaultDisplay().getMetrics(displayMetrics);
        int height = displayMetrics.heightPixels;
        int width = displayMetrics.widthPixels << 1;
        myBitmap = Bitmap.createScaledBitmap(myBitmap,width, height, true);
        try {
            wallpaperManager.setBitmap( myBitmap);
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }  
    }
}
Run Code Online (Sandbox Code Playgroud)

xtr*_*xtr 7

将壁纸大小设置为您的图像大小:

WallpaperManager wm = (WallpaperManager) getSystemService(WALLPAPER_SERVICE);
wm.setBitmap(bitmap);
wm.suggestDesiredDimensions(w, h);
Run Code Online (Sandbox Code Playgroud)

并记得添加权限:

<uses-permission android:name="android.permission.SET_WALLPAPER_HINTS"/>
<uses-permission android:name="android.permission.SET_WALLPAPER"/>
Run Code Online (Sandbox Code Playgroud)

  • 请注意来自`suggestDesiredDimensions()`方法的文档中的消息:**"注意开发人员,他们似乎没有阅读此内容.这是主屏幕告诉他们想要的大小壁纸.没有其他人应该打电话这肯定不是其他改变壁纸的非主屏幕应用程序.这些应用程序应该检索建议的大小,以便他们可以构建一个匹配它的壁纸."** (2认同)