Android 编程设置背景(可绘制)不';t中心

Android 编程设置背景(可绘制)不';t中心,android,background,background-image,drawable,centering,Android,Background,Background Image,Drawable,Centering,我写了一个应用程序,让人们选择一个图像(可绘制),当他们点击“设置为背景”按钮后,所选图像应该显示在我手机的背景中 下面的代码可以正常工作。图像被放置并居中。但是对于操作系统(>API13),它被贬值了。是否有人知道如何修复图像,使图像也居中(或缩放以适应屏幕,如果您愿意) 我试着用“displaymetrics”或“points”来替换它以获得w或h,但这无助于图像居中。是不是“建议的期望维度”不再起作用了 ResID是所需可提取数据的标识符 有人知道怎么处理吗?谢谢 public void

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

下面的代码可以正常工作。图像被放置并居中。但是对于操作系统(>API13),它被贬值了。是否有人知道如何修复图像,使图像也居中(或缩放以适应屏幕,如果您愿意)

我试着用“displaymetrics”或“points”来替换它以获得w或h,但这无助于图像居中。是不是“建议的期望维度”不再起作用了

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();
    }



}
尝试使用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();
}