1

この関数を使用して、デバイスに壁紙を設定しようとしました。

void setWallpaper() {
    DisplayMetrics metrics = new DisplayMetrics();
    ((Activity) context).getWindowManager().getDefaultDisplay()
            .getMetrics(metrics);

    int width = metrics.widthPixels;
    int height = metrics.heightPixels;
    String imagepath = Environment.getExternalStorageDirectory() + "/"
            + getImageName();
    FileInputStream is = null;
    try {
        is = new FileInputStream(new File(imagepath));
    } catch (FileNotFoundException e) {
        e.printStackTrace();
    }
    BufferedInputStream bis = new BufferedInputStream(is);
    Bitmap bitmap = BitmapFactory.decodeStream(bis);
    Bitmap useThisBitmap = Bitmap.createScaledBitmap(bitmap, width, height,
            true);
    bitmap.recycle();
    if (imagepath != null) {
        System.out.println("Hi I am trying to set wallpaper");
        WallpaperManager wallpaperManager = WallpaperManager
                .getInstance(context);
        Drawable wallpaperDrawable = wallpaperManager.getDrawable();
        try {
            wallpaperManager.setBitmap(useThisBitmap);
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
}

しかし、私はより大きなスケールの画像を取得しています。つまり、画像の一部が画面からはみ出しています。このコードを正しく変更するにはどうすればよいですか?

4

1 に答える 1