2012-05-20 137 views
0

我目前在使用下面的代碼片段來設置我的壁紙背景。我的問題是,完整的圖像不會出現在壁紙上。它始終被剪裁併且缺少壁紙底部和側面視圖中的對象。我試圖裁剪照片,調整圖像大小,我也嘗試改變分辨率以匹配我的模擬器。這些都不起作用。做任何你知道如何使用下面的代碼顯示完整的圖像:Android壁紙背景

Bitmap background = BitmapFactory.decodeResource(getResources(), R.drawable.testimg2); 
try { 
     wpm.setBitmap(background); 
}catch(...){ 
.... 
} 

更新後的代碼(即仍然裁剪圖像):

int width = display.getWidth(); 
int height = display.getHeight(); 
Log.v("WALLPAPER", "width and height are " + width + " " + height); 
Bitmap background = BitmapFactory.decodeResource(getResources(), R.drawable.testimg2); 
Bitmap scaled = Bitmap.createScaledBitmap(background, width, height, true); 
+0

[郵政是舊的,但無論如何...您可以嘗試類似於此](http://stackoverflow.com/a/41347058/1685165) – Darko

回答

2

的問題可能是分辨率的壁紙經理慾望。它可能是屏幕寬度的兩倍,並且它調整了壁紙的大小,使其適合所需的參數。試試這個,找出所需壁紙的分辨率是多少,使用

int minH, minW; 
WallpaperManager myWallpaperManager = WallpaperManager.getInstance(getApplicationContext()); 
minH = myWallpaperManager.getDesiredMinimumHeight(); 
minW = myWallpaperManager.getDesiredMinimumWidth(); 
Log.d("TAG", "The desired wallpaper height is: " + minH + "; and the desired width is:" + minW); 

後,使與胡志明市和minW一個Bitmap.createScaledBitmap。並記住,當你創建位圖:

BitmapFactory.Options options = new BitmapFactory.Options(); 
options.inScaled = false;