9

こんにちは、ホーム画面の壁紙を設定するためにコーディングしています。それはうまくいっています。しかし、画像のピクセルが完全に破損しているため、壁紙がホーム画面の実際のサイズに収まりません。さまざまなサイズの画像をワークアウトしようとしています。残念ながら、それは私にとってはうまくいきません。それを解決する方法。

私のコードはここにあります

WallpaperManager wallpaperManager = WallpaperManager.getInstance(this);
Drawable drawable = getResources().getDrawable(R.drawable.newimage);
Bitmap wallpaper = ((BitmapDrawable) drawable).getBitmap();           
try 
{
    wallpaperManager.setBitmap(wallpaper);
} 
catch (IOException e) 
{
    e.printStackTrace();
}

私のスクリーンショットの元の画像
ここに画像の説明を入力

私のスクリーンショット Android Emulator のホーム画面
ここに画像の説明を入力

元の画像がここで破損している理由。に基づいた
表示方法。My Original ImageEmulator Size

4

2 に答える 2

7

これを試すことができます:

WallpaperManager wallpaperManager = WallpaperManager.getInstance(this);
Drawable drawable = getResources().getDrawable(R.drawable.newimage);
Bitmap wallpaper_source = ((BitmapDrawable) drawable).getBitmap();           
try {
    int w = wallpaperManager.getDesiredMinimumWidth();
    int h = wallpaperManager.getDesiredMinimumHeight();
    int x = (w-wallpaper_source.getWidth())/2;
    int y = (h-wallpaper_source.getHeight())/2;
    Bitmap wallpaper = Bitmap.createBitmap(w, h, Config.ARGB_8888);
    Canvas c = new Canvas(wallpaper);
    c.drawBitmap(wallpaper_source, x,y, null);
    wallpaperManager.setBitmap(wallpaper);
} 
catch (IOException e) 
{
    e.printStackTrace();
}
于 2012-09-24T11:18:00.273 に答える
0
WallpaperManager wallpaperManager = WallpaperManager.getInstance(activity);
    BitmapFactory.Options myOptions = new BitmapFactory.Options();
    myOptions.inDither = true;
    myOptions.inScaled = false;
    myOptions.inPreferredConfig = Bitmap.Config.ARGB_8888;
    myOptions.inDither = false;
    myOptions.inPurgeable = true;
    Bitmap preparedBitmap = BitmapFactory.decodeResource(activity
            .getApplication().getResources(), R.drawable.newimage, myOptions);
    try 
    {
        wallpaperManager.setBitmap(preparedBitmap);
    } 
    catch (IOException e) 
    {
        e.printStackTrace();
    }

これは、クレイジーな線が横切ることなく画像を適切に拡大縮小するために使用するものです-壁紙にこれを試すことができます-うまくいくかどうかわからないので、お知らせください.

于 2012-09-24T11:28:45.283 に答える