以编程方式设置背景(可绘制)不居中

时间:2013-10-28 13:30:27

标签: android background background-image drawable centering

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

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

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

ResID是所需drawable的标识符。

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

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



}

1 个答案:

答案 0 :(得分: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();
}

}