2012-07-15 76 views
1

所以我試圖創建一個應用程序,用戶可以按下按鈕以使用手機的相機拍攝圖像,然後按另一個按鈕將該圖像設置爲手機的壁紙。setWallpaper(bitmap)沒有設置全屏壁紙?

我開始與這個照相機意圖:(這是在一個onClick方法)

Intent i; 

i = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE); 
      startActivityForResult(i, cameraResults); 

然後我實施此方法以從攝像頭接收圖像:

protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    // TODO Auto-generated method stub 
    super.onActivityResult(requestCode, resultCode, data); 
    if(resultCode == RESULT_OK){ 
     Bundle extras = data.getExtras(); 
     bmp = (Bitmap) extras.get("data"); 
     imageView.setImageBitmap(bmp); 
    } 
} 

然後,在設置壁紙爲按鈕的按鈕的onClick方法,我使用:

getApplicationContext().setWallpaper(bmp); 

當我運行這個應用程序,一切似乎完美!照片拍攝後,我將imageView設置爲圖片,然後當我按下按鈕將圖像設置爲我的壁紙時,我的壁紙變化了。

然而,問題是來自相機的圖像沒有正確設置爲壁紙。出於某種原因,圖片尺寸減小,因此只有壁紙的中間是該圖片。大部分屏幕都是黑色的。由於某種原因,圖像縮小了。我希望圖片是全屏的,但現在它已經最小化了,背景是黑色的。

有沒有人有任何想法,爲什麼這是?我正在關注教程視頻,並且教程中的人員可以完美地工作(該圖像被設置爲全屏幕牆紙)。

我非常感謝所有幫助,非常感謝!

其他人知道我可以如何縮放它,以便我設置壁紙全屏?

+1

大多數相機,或至少我的htc droid令人難以置信的有一個8MP相機在背面時,當你拍照片所需的內存量,以查看一張全尺寸的照片是巨大的,如果你不規模你可以運行內存不足的地方。你需要預先正確縮放它,所以OS不會爲你做到這一點 – L7ColWinters 2012-07-15 05:32:22

+0

@ L7ColWinters是的,我測試的手機是Galaxy S2,所以它有一個8mp的遊戲。好吧,所以我有點明白你在說什麼。全屏圖片會佔用太多內存,所以它使用的是一個包含較少數據的小圖片。那麼如何以編程方式解決這個問題?什麼是需要縮放我的位圖的代碼?感謝您的迴應btw。 – bhsu 2012-07-15 15:48:21

回答