如何将相机预览设置为壁纸?
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 创建动态壁纸。然后,您需要让您的服务创建自己的渲染表面,将相机预览绘制到其中。
【讨论】:
以上是关于如何将相机预览设置为壁纸?的主要内容,如果未能解决你的问题,请参考以下文章