5

ギャラリーから画像を選択し、その画像を壁紙として設定するアプリを開発しています。しかし、ここでの問題は、画像全体ではなく画像の一部のみが壁紙として設定されていることですが、画像全体を壁紙として設定したいです。それができる方法を教えてください???

これが私のコードです...

public class Scaleimage extends Activity {
    /** Called when the activity is first created. */

    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        String FileName;
        File file = new File("/sdcard/pictures");   
        File[] imageFiles = file.listFiles( );
        if(imageFiles.length > 0 ) {
            FileName = imageFiles[0].getName();
        final WallpaperManager wallpaperManager = WallpaperManager.getInstance(getBaseContext());   
        Bitmap myBitmap =  BitmapFactory.decodeFile("/sdcard/pictures" + "/" + FileName); 

        DisplayMetrics displayMetrics = new DisplayMetrics();
        getWindowManager().getDefaultDisplay().getMetrics(displayMetrics);
        int height = displayMetrics.heightPixels;
        int width = displayMetrics.widthPixels << 1;
        myBitmap = Bitmap.createScaledBitmap(myBitmap,width, height, true);
        try {
            wallpaperManager.setBitmap( myBitmap);
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }  
    }
}
4

2 に答える 2

7

壁紙のサイズを画像サイズに設定します。

WallpaperManager wm = (WallpaperManager) getSystemService(WALLPAPER_SERVICE);
wm.setBitmap(bitmap);
wm.suggestDesiredDimensions(w, h);

権限を追加することを忘れないでください:

<uses-permission android:name="android.permission.SET_WALLPAPER_HINTS"/>
<uses-permission android:name="android.permission.SET_WALLPAPER"/>
于 2012-07-10T10:26:36.260 に答える
1

次のように壁紙マネージャーに幅の高さを渡します。

final WallpaperManager wallpaperManager = (WallpaperManager)getSystemService(
                Context.WALLPAPER_SERVICE);    

Bitmap myBitmap = Bitmap.createScaledBitmap(Const.cropped_bitmap, wallpaperManager.getDesiredMinimumWidth(), wallpaperManager.getDesiredMinimumHeight(), true);
wallpaperManager.suggestDesiredDimensions(wallpaperManager.getDesiredMinimumWidth(), wallpaperManager.getDesiredMinimumHeight());

try {

    wallpaperManager.setBitmap(myBitmap);
    Toast.makeText(CropImageActivity.this, CropImageActivity.this.getString(R.string.wallpaper_has_been_set), 0).show();
} catch (IOException e) {
    e.printStackTrace();
    Toast.makeText(CropImageActivity.this, "Wallpaper not set", 0).show();
}

許可を追加することを忘れないでください:

<uses-permission android:name="android.permission.SET_WALLPAPER_HINTS"/>
<uses-permission android:name="android.permission.SET_WALLPAPER"/>
于 2016-06-05T09:57:12.143 に答える