Android:获取壁纸的大小

Android:获取壁纸的大小,android,wallpaper,Android,Wallpaper,我想拥有用于裁剪的壁纸的默认大小。 因为这样用户就可以将图像裁剪到适合壁纸的大小 我试过了 WallpaperManager.getInstance(getApplicationContext()).getDrawable().getMinimumHeight();//same for width 或 但三星Galaxy S4 mini上显示的是960x960,这不可能。 在我的HTC One V上,它说这可能是960x800,但我认为这并不完全正确 你知道怎么找到墙纸的尺寸吗? 仅具有屏幕尺

我想拥有用于裁剪的壁纸的默认大小。 因为这样用户就可以将图像裁剪到适合壁纸的大小

我试过了

WallpaperManager.getInstance(getApplicationContext()).getDrawable().getMinimumHeight();//same for width

但三星Galaxy S4 mini上显示的是960x960,这不可能。 在我的HTC One V上,它说这可能是960x800,但我认为这并不完全正确

你知道怎么找到墙纸的尺寸吗?
仅具有屏幕尺寸是不够的,因为例如,我的HTC壁纸比屏幕大,因为如果你向左或向右擦拭,壁纸会移动。

根据我对你问题的理解,你需要一张适合主屏幕的图像。 请参阅以下链接:


  • 我希望这能解决您的问题。

    您可以尝试将壁纸转换为可绘制壁纸,然后从中获取宽度和高度:

    WallpaperManager wpm = WallpaperManager.getInstance(getApplicationContext());
    Drawable d = wpm.getDrawable();
    int width = d.getIntrinsicWidth();
    int height = d.getIntrinsicHeight();
    
    或强制转换为位图:

    bmp = ((BitmapDrawable) d).getBitmap();
    width = bmp.getWidth();
    height = bmp.getHeight();
    

    好的,谢谢第二个链接很有帮助,但是它说Android需要宽度*2,但是在三星GS4迷你和S3迷你(例如)上,墙纸是固定的。我会尝试2*宽的,但我认为在那些智能手机上它不会工作。
    bmp = ((BitmapDrawable) d).getBitmap();
    width = bmp.getWidth();
    height = bmp.getHeight();