如何将相机预览设置为壁纸?

Posted

技术标签:

【中文标题】如何将相机预览设置为壁纸?【英文标题】: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?

【问题讨论】:

请向我们展示您到目前为止所做的尝试 请看已编辑的问题? 【参考方案1】:

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

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

How to set image as wallpaper programmatically?

【讨论】:

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

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

【讨论】:

以上是关于如何将相机预览设置为壁纸?的主要内容,如果未能解决你的问题,请参考以下文章

如何将壁纸设置为锁屏或两者(家庭和锁定)?

颤振,如何将图像网络设置为壁纸2021

安卓手机如何自定义设置动态壁纸

苹果手机怎么在主屏幕左上方设置自己的名字?

ffmpeg/camera实现最近很火的视频壁纸,相机壁纸

仿百度壁纸client——完结篇之Gallery画廊实现壁纸预览已经项目细节优化