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 に答える