0

我编写了一个应用程序,让人们可以选择一个图像(可绘制),在他们点击“设置为背景”按钮后,所选图像应该作为我手机的背景居中显示。

以下代码用于正常工作。图像被放置并居中。但是对于操作系统(> api 13),它会被折旧。有谁知道如何修复以使图像也居中(或根据需要缩放以适合屏幕)?

我尝试用“displaymetrics”或“points”替换它以获得 w 或 h,但它无助于使图像居中。是“suggestDesiredDimensions”不再这样做了吗?

ResID 是所需可绘制对象的标识符。

任何人都知道如何处理这个?谢谢!

public void setBackground(View v)
{

    try {
        // Set background from a resource


        WallpaperManager.getInstance(this).setResource(resID);

        WallpaperManager wm = (WallpaperManager) getSystemService(WALLPAPER_SERVICE);

        Display display = getWindowManager().getDefaultDisplay(); 
        int w = display.getWidth();  // deprecated
        int h = display.getHeight(); //deprecated

        wm.suggestDesiredDimensions(w, h);


    } 
    catch (IOException e) 
    {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }



}
4

1 回答 1

0

尝试使用 display.getSize()

public void setBackground(View v){

try {
    // Set background from a resource


    WallpaperManager.getInstance(this).setResource(resID);

    WallpaperManager wm = (WallpaperManager) getSystemService(WALLPAPER_SERVICE);

    Display display = getWindowManager().getDefaultDisplay();

    Point size = new Point();
    display.getSize(size);

    int w = size.x;
    int h = size.y;

    wm.suggestDesiredDimensions(w, h);


} 
catch (IOException e) 
{
// TODO Auto-generated catch block
e.printStackTrace();
}

}

于 2013-10-28T17:36:18.743 回答