【问题标题】:How to set camera preview as a wallpaper?如何将相机预览设置为壁纸?
【发布时间】:2014-01-20 19:35:08
【问题描述】:

我有一个项目,当用户单击按钮时我有一个按钮,然后将相机预览设置为墙纸,谁能告诉我我该怎么做?

我正在使用以下代码进行相机预览

public class CameraPreview extends SurfaceView implements SurfaceHolder.Callback{

private SurfaceHolder mHolder;
private Camera mCamera;


public CameraPreview(Context context, Camera camera) {
    super(context);
    mCamera=camera;
    // TODO Auto-generated constructor stub
    mHolder = getHolder();
    mHolder.addCallback(this);
    mHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
}

@Override
public void surfaceCreated(SurfaceHolder holder) {
    // TODO Auto-generated method stub
    try {
        mCamera.setPreviewDisplay(holder);
        mCamera.setDisplayOrientation(90);
        mCamera.startPreview();
    } catch (IOException e) {
        Log.d("DEBUG", "Error setting camera preview: " + e.getMessage());
    }
}



@Override
public void surfaceDestroyed(SurfaceHolder holder) {
    // TODO Auto-generated method stub

}

@Override
public void surfaceChanged(SurfaceHolder holder, int format, int width,
        int height) {
    // TODO Auto-generated method stub

    if (mHolder.getSurface() == null){
      // preview surface does not exist
      return;
    }

    // stop preview before making changes
    try {
        mCamera.stopPreview();
    } catch (Exception e){
      // ignore: tried to stop a non-existent preview
    }

    // set preview size and make any resize, rotate or
    // reformatting changes here

    // start preview with new settings
    try {
        mCamera.setPreviewDisplay(mHolder);
        mCamera.startPreview();

    } catch (Exception e){
        Log.d("DEBUG", "Error starting camera preview: " + e.getMessage());
    }
}
}

但我的问题是如何将相机预览添加到 WallpaperService?

【问题讨论】:

  • 请向我们展示您到目前为止所做的尝试
  • 请看已编辑的问题?

标签: android camera android-camera live-wallpaper wallpaper


【解决方案1】:

首先,当用户点击按钮时,对相机预览进行拍照,并找出图片保存的路径。

然后参考此链接,通过指定路径将特定图像设置为壁纸。

How to set image as wallpaper programmatically?

【讨论】:

  • 感谢回复,但我的应用要求是当用户点击“设置壁纸”按钮时,将实时摄像头添加到壁纸屏幕。
  • 是的,所以当用户单击“设置壁纸”按钮时,您可以以编程方式让相机拍照、保存并使用存储在路径中的图像设置为壁纸。无论如何,您必须将图像显示为墙纸。所以无论你点击按钮时预览显示的是什么,都将显示为墙纸。
  • 对不起,我的应用要求是不要将相机图片设置为壁纸。我的要求是当我们打开相机时,它将进入捕获模式,该捕获模式设置为壁纸,这意味着用户将相机设置为壁纸,它只是连续处于捕获模式。
【解决方案2】:

您需要使用WallpaperService 创建动态壁纸。然后,您需要让您的服务创建自己的渲染表面,将相机预览绘制到其中。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多