setWallpaper(位图)没有设置全屏壁纸?

时间:2012-07-15 05:12:44

标签: java android android-intent

所以我正在尝试创建一个应用程序,用户可以按下按钮使用手机的相机拍摄图像,然后按另一个按钮将该图像设置为手机的壁纸。

我用这个开始了相机意图:(这是一个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);
    }
}

然后,在将壁纸设置为bmp的按钮的onClick方法中,我使用了:

getApplicationContext().setWallpaper(bmp);

当我运行这个应用程序时,一切似乎都完美无缺!拍摄照片后,我将imageView设置为图片,然后当我按下按钮将图像设置为我的壁纸时,我的壁纸会发生变化。

然而,问题是来自相机的图像未正确设置为壁纸。由于某种原因,图片尺寸减小,因此只有壁纸的中间是该图像。大部分屏幕都是黑色的。由于某种原因,图像缩小了。我希望图片是全屏的,但是现在,它被最小化,背景是黑色的。

有谁知道为什么会这样?我正在关注一个教程视频,教程中的人员可以完美地工作(图像被设置为全屏壁纸)。

我感谢所有人的帮助,非常感谢你!

其他人都知道如何缩放它以便我将壁纸设置为全屏?

1 个答案:

答案 0 :(得分:1)

您要提取的位图是图像的缩略图。 尝试 this Android official tutorial使用原生相机应用和图片缩放。