2012-07-15 49 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

回答