能否在自由落体时候让倒车摄像头缩进去自动缩回去,这个功能很有

vivo NEX如何收回前置摄像头?这种情况下它会自动缩回机身中!
vivo NEX如何收回前置摄像头?这种情况下它会自动缩回机身中!
[摘要]vivo nex采用前置弹出式摄像头,只有我们在拍照的时候才会弹出,那么不用的时候可以收回吗?有几种办法收回前置摄像头呢?下面小编就教大家。
vivo nex采用前置弹出式摄像头,只有我们在拍照的时候才会弹出,那么不用的时候可以收回吗?有几种办法收回前置摄像头呢?下面小编就教大家。
vivonex前置摄像头怎么收回?
vivonex采用了弹出式摄像头。在点击切换前置摄像头之后,只需等待0.8秒的时间,前置800万像素摄像头就会从左上侧弹出来,关闭自拍前置摄像头会自动收回。
在特殊情况下,为了保护前置摄像头的安全,碰到挤压情况下,它会自己缩入机身中,为了避免升降式摄像头因为各种原因卡住没缩回去,vivo nex设定在关机等各种意外环境下自动缩回,所以这点大家不用担心。
速度方面,vivonex前置摄像头弹出收回速度和正常手机切换前后摄像头所花的时间相比虽然略慢,但并不会相差太多,可以做到即开即用,即关即收。
根据官方提供的数据,该前置摄像头可以连续完成5W次升降而不损坏,也就是说一天开关十次的话也能用十多年,满电状态可升降13000次,另外整个结构也做了防尘、防摔的可靠性设计。
以上就是本文的全部内容了,希望对大家有所帮助。您好,三星c101摄像头屏幕关了还自己自动伸缩,有时候伸出来缩不回去是怎么回事_百度知道
您好,三星c101摄像头屏幕关了还自己自动伸缩,有时候伸出来缩不回去是怎么回事
就是手机放那里摄像头会自己伸缩,这个问题怎么解决,原先听说是下载了魅拍等其他照相软件,可是卸载了以后还是那样,请问有好的解决方案么
我有更好的答案
尊敬的三星用户您好:根据您的描述,建议您按照如下步骤尝试操作:1.重新开关手机2.进入手机设置-应用程序管理器-全部(向左滑动屏幕)-点击相机-清除数据3.备份手机数据(电话薄、短信信息、多媒体资料等)恢复手机出厂设置若问题依然存在,建议您将手机送至就近的三星服务中心进行检测,三星服务中心具体位置请点击以下链接:建议您在三星官网进行“预约到店”维修申请,享受优先维修服务:预约成功后,请携带您的机器、发票及保修卡按时访问您预约的服务中心。评价、建议、吐槽,请点击:support.samsung.com.cn/survey
三星产品问答服务
主营:电子产品
为您推荐:
摄像头的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。Android开发学习之以Camera方式实现相机功能(一)——快速实现相机
今天无意当中发现在《开发学习之基于ZBar实现微信扫一扫》中的一部分代码可以用来以硬件方式实现一个照相机的功能,在《Android开发学习之调用相机完成拍照的实现》中我们是以Intent方式调用系统内置的相机来完成拍照的,今天呢,就让我们来以Camera类为核心来开发自己的相机应用吧。在Android的官方文档中,以硬件方式定制相机应用的步骤如下:
1. 检查和访问Camera
创建代码来检查Camera和所申请访问的存在性;
2. 创建一个预览类
继承SurfaceView来创建一个Camera的预览类,并实现SurfaceHolder接口。这个类用来预览来自Camera的实施图像。
3. 构建一个预览布局
一旦有了Camera预览类,就可以把这个预览类和你想要的用户界面控制结合在一起来创建一个视图布局。
4. 针对采集建立监听
把监听器与响应用户动作(如按下按钮)的界面控制连接到一起来启动图像或视频的采集。
5. 采集和保存文件
针对真正采集的图片或视频,以及输出的保存来编写代码。
6. 释放Camera
使用Camera之后,你的应用程序必须释放Camera,以便其他应用程序能够使用。
Camera硬件是一个必须要认真管理的共享资源,因此你的应用程序在使用它时,不能跟其他应用程序发生冲突。下文将讨论如何检查Camera硬件、如何申请对Camera的访问,如何采集图片和视频,以及在应用使用完成后如何释放Camera。
警告:在应用程序使用完Camera时,要记住通过调用Camera.release()方法来释放Camera对象。如果你的应用程序没有正确的释放Camera,所有的后续的视图对Camera的访问,包括你自己的应用程序,都会失败,并可能到你的或其他的应用程序关闭。
下面我们就来按照上面的步骤来一步步的制作一个属于自己的相机应用吧!
第一步:检查和访问相机
/** 官方建议的安全地访问摄像头的方法
public static Camera getCameraInstance(){
Camera c =
c = Camera.open();
catch (Exception e){
Log.d("TAG", "Error is "+e.getMessage());
/** 检查设备是否支持摄像头
private boolean CheckCameraHardware(Context mContext)
if (mContext.getPackageManager().hasSystemFeature(PackageManager.FEATURE_CAMERA))
// 摄像头存在
// 摄像头不存在
第二步:创建一个预览类。这里我们使用的是官方API中提供的一个基本的预览类:
package com.android.OpenC
import java.io.IOE
import android.annotation.SuppressL
import android.content.C
import android.hardware.C
import android.util.L
import android.view.SurfaceH
import android.view.SurfaceV
/** 一个基本的相机预览界面类
@SuppressLint("ViewConstructor")
public class CameraPreview extends SurfaceView implements SurfaceHolder.Callback {
/** Camera **/
private Camera mC
/** SurfaceHolder **/
private SurfaceHolder mH
/** CamreaPreview构造函数
@SuppressWarnings("deprecation")
public CameraPreview(Context mContext,Camera mCamera)
super(mContext);
this.mCamera=mC
// 安装一个SurfaceHolder.Callback,
// 这样创建和销毁底层surface时能够获得通知。
mHolder = getHolder();
mHolder.addCallback(this);
// 已过期的设置,但版本低于3.0的Android还需要
mHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
public void surfaceChanged(SurfaceHolder arg0, int arg1, int arg2, int arg3)
public void surfaceCreated(SurfaceHolder holder)
mCamera.setPreviewDisplay(holder);
mCamera.startPreview();
mCamera.setDisplayOrientation(90);
} catch (IOException e) {
Log.d("TAG", "Error is "+e.getMessage());
public void surfaceDestroyed(SurfaceHolder arg0)
// 如果预览无法更改或旋转,注意此处的事件
// 确保在缩放或重排时停止预览
if (mHolder.getSurface() == null){
// 预览surface不存在
// 更改时停止预览
mCamera.stopPreview();
} catch (Exception e){
// 忽略:试图停止不存在的预览
// 在此进行缩放、旋转和重新组织格式
// 以新的设置启动预
mCamera.setPreviewDisplay(mHolder);
mCamera.setDisplayOrientation(90);
mCamera.startPreview();
} catch (Exception e){
Log.d("TAG", "Error is " + e.getMessage());
第三步:构建预览布局。这里我们使用FrameLayout来加载第二步创建的预览类,使用一个按钮进行拍照并完成储存,使用一个ImageView显示拍照的缩略图,当我们点击这个缩略图时时,系统将会调用相应的程序来打开这个图片。
&frameLayout
android:id="@+id/PreviewView"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="0.8" &
&/frameLayout&
第四步:针对采集监听。其中PictureCallback接口用于处理拍照的结果,这里我们做三件事情,第一,保存图片;第二,显示缩略图;第三、保存当前图片的Uri,以便于系统的访问。ShutterCallback接口用于处理按下快门的事件,这里我们使用MediaPlayer类来播放快门按下时的音效。
/** 拍照回调接口
private PictureCallback mPicureCallback=new PictureCallback()
public void onPictureTaken(byte[] mData, Camera camera)
File mPictureFile = StorageHelper.getOutputFile(StorageHelper.MEDIA_TYPE_IMAGE);
if (mPictureFile == null){
/** 存储照片
FileOutputStream fos = new FileOutputStream(mPictureFile);
fos.write(mData);
fos.close();
/** 设置缩略图
Bitmap mBitmap=BitmapFactory.decodeByteArray(mData, 0, mData.length);
ThumbsView.setImageBitmap(mBitmap);
/** 获取缩略图Uri
mUri=StorageHelper.getOutputUri(mPictureFile);
/**停止预览**/
mCamera.stopPreview();
/**开始预览**/
mCamera.startPreview();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
/** 快门回调接口
private ShutterCallback mShutterCallback=new ShutterCallback()
public void onShutter()
mPlayer=new MediaPlayer();
mPlayer=MediaPlayer.create(MainActivity.this,R.raw.shutter);
mPlayer.prepare();
} catch (IllegalStateException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
mPlayer.start();
第五步:采集与保存。采集与保存在第四步已经给出了,这里给出一个用于保存文件的辅助类StorageHelper类:
package com.android.OpenC
import java.io.F
import java.text.SimpleDateF
import java.util.D
import android.annotation.SuppressL
import android.net.U
import android.os.E
@SuppressLint("SimpleDateFormat")
public final class StorageHelper
public static final int MEDIA_TYPE_IMAGE=0;
public static final int MEDIA_TYPE_VIDEO=1;
public static Uri
getOutputUri(File mFile)
return Uri.fromFile(mFile);
public static File getOutputFile(int mType)
File mMediaFileDir=new File(Environment.getExternalStorageDirectory(),"OpenCamera");
if(!mMediaFileDir.exists())
if(!mMediaFileDir.mkdir())
File mMediaFile=
创建文件名
String mFileName=new SimpleDateFormat("yyyyMMddHHmmss").format(new Date());
switch(mType)
case MEDIA_TYPE_IMAGE:
mMediaFile=new File(mMediaFileDir.getPath()+File.separator+"IMG_"+mFileName+".jpg");
case MEDIA_TYPE_VIDEO:
mMediaFile=new File(mMediaFileDir.getPath()+File.separator+"VID_"+mFileName+".mp4");
mMediaFile=
return mMediaF
第六步:相机的释放
if (mCamera != null){
mCamera.release();
通过以上步骤,我们就完成了一个简单的相机,最后给出主要的逻辑代码:
package com.android.OpenC
import java.io.F
import java.io.FileNotFoundE
import java.io.FileOutputS
import java.io.IOE
import android.graphics.B
import android.graphics.BitmapF
import android.hardware.C
import android.hardware.Camera.AutoFocusC
import android.hardware.Camera.PictureC
import android.hardware.Camera.ShutterC
import android.media.MediaP
import android.net.U
import android.os.B
import android.app.A
import android.content.C
import android.content.I
import android.content.pm.PackageM
import android.util.L
import android.view.M
import android.view.V
import android.view.View.OnClickL
import android.view.W
import android.view.WindowM
import android.widget.B
import android.widget.FrameL
import android.widget.ImageV
import android.widget.T
public class MainActivity extends Activity {
private Camera mC
/** 预览界面
private CameraPreview mP
/** 缩略图
ImageView ThumbsV
/** 当前缩略图Uri **/
private Uri mU
/** MediaPlayer **/
private MediaPlayer mP
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
/** 隐藏标题栏
requestWindowFeature(Window.FEATURE_NO_TITLE);
/** 隐藏状态栏
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);
/** 禁用锁屏,因为再次唤醒屏幕程序就会终止,暂时不知道怎么解决
getWindow().setFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON, WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
setContentView(R.layout.activity_main);
/** 硬件检查
if(CheckCameraHardware(this)==false)
Toast.makeText(this, "很抱歉,您的设备可能不支持摄像头功能!", Toast.LENGTH_SHORT).show();
/** 获取相机
mCamera=getCameraInstance();
/** 获取预览界面
mPreview = new CameraPreview(this, mCamera);
FrameLayout mFrameLayout = (FrameLayout)findViewById(R.id.PreviewView);
mFrameLayout.addView(mPreview);
mCamera.startPreview();
/** 拍照按钮
Button BtnCapture = (Button) findViewById(R.id.BtnCapture);
BtnCapture.setOnClickListener(new OnClickListener()
public void onClick(View v)
/** 使用takePicture()方法完成拍照
mCamera.autoFocus(new AutoFocusCallback()
/** 自动聚焦聚焦后完成拍照
public void onAutoFocus(boolean isSuccess, Camera camera)
if(isSuccess&&camera!=null)
mCamera.takePicture(mShutterCallback, null, mPicureCallback);
/** 相机缩略图
ThumbsView = (ImageView)findViewById(R.id.ThumbsView);
ThumbsView.setOnClickListener(new OnClickListener()
public void onClick(View v)
/** 使用Uri访问当前缩略图
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(mUri, "image/*");
startActivity(intent);
/** 快门回调接口
private ShutterCallback mShutterCallback=new ShutterCallback()
public void onShutter()
mPlayer=new MediaPlayer();
mPlayer=MediaPlayer.create(MainActivity.this,R.raw.shutter);
mPlayer.prepare();
} catch (IllegalStateException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
mPlayer.start();
/** 拍照回调接口
private PictureCallback mPicureCallback=new PictureCallback()
public void onPictureTaken(byte[] mData, Camera camera)
File mPictureFile = StorageHelper.getOutputFile(StorageHelper.MEDIA_TYPE_IMAGE);
if (mPictureFile == null){
/** 存储照片
FileOutputStream fos = new FileOutputStream(mPictureFile);
fos.write(mData);
fos.close();
/** 设置缩略图
Bitmap mBitmap=BitmapFactory.decodeByteArray(mData, 0, mData.length);
ThumbsView.setImageBitmap(mBitmap);
/** 获取缩略图Uri
mUri=StorageHelper.getOutputUri(mPictureFile);
/**停止预览**/
mCamera.stopPreview();
/**开始预览**/
mCamera.startPreview();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
/** 官方建议的安全地访问摄像头的方法
public static Camera getCameraInstance(){
Camera c =
c = Camera.open();
catch (Exception e){
Log.d("TAG", "Error is "+e.getMessage());
/** 检查设备是否支持摄像头
private boolean CheckCameraHardware(Context mContext)
if (mContext.getPackageManager().hasSystemFeature(PackageManager.FEATURE_CAMERA))
// 摄像头存在
// 摄像头不存在
protected void onPause() {
super.onPause();
if (mCamera != null){
mCamera.release();
protected void onResume()
super.onResume();
if(mCamera == null)
mCamera = getCameraInstance();
mCamera.startPreview();
public boolean onCreateOptionsMenu(Menu menu) {
// I this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
这里一直有一个困惑我的问题,就是当手机锁屏以后再次唤醒屏幕,程序会立即终止。因为找不到原因,所以目前只能用代码控制设备禁止锁屏来避免这个问题的发生。这个问题和《Android开发学习之基于ZBar实现微信扫一扫》是一样的,留给大家去思考了。记得给程序加入以下权限:
晚上看到Camera360开放了SDK的消息。主推拍照和滤镜API,其实开源的滤镜有很多啦,结合我们今天的例子,我们完全可以做出一个不错的相机应用来,作为长期受益于开源社区的回报,我决定在整合滤镜以后把全部的程序开源,希望大家支持我哦。唉,明天要考试了,我竟然还能如此充满激情的,其实这就是编程的魅力啦,在编程的世界里,我可以完全按照自己的意愿去做自己喜欢的,而这就够了,当老师和同学们都觉得我在抱怨专业课的时候,其实我只是想让自己的内心感到快乐而已。好了,晚安,各位![杂谈] vivo nex 手机用QQ浏览器会自动伸出摄像头
IT之家广东深圳网友
给大家说个笑死人的事情:前几天VVO发布的NEX手机,为了真正的做到全面屏而不留刘海,VVO巧妙的设计了升降式前置摄像头,自拍的时候,前置摄像头就会缓缓升起,拍摄完后就又自动缓缓的缩回去,这个设计是不是很6?然而,这几天有使用这个手机的网友发现,经常在使用手机的时候,明明没有自拍,摄像头还会升起来看你一眼,然然后再默默的缩回去。一开始还以为是手机故障,后来发现,是某些有相机权限的ap,在用户不知情的情况下,不定时的偷拍周围的环境。可是普通手机一般人根本无法发现摄像头的偷偷瞬间启动与关闭,VIVO的这个NEX,突然就成了那些流氓APP的鉴定器。想象一下,你躺在床上,忘我的玩着手机,这时候摄像头突然偷偷伸出来,默默看你一眼,然后缩回去,这种感觉,是不是很微妙?哈哈哈哈哈哈哈关于用QQ浏览器打开某些网页会调起 Vivo NEX摄像头问题的说明QQ浏览器团队收到用户反馈,用户在 Vivo NEX手机设备上通过手机QQ浏览器打开某些网页时,手机摄像头会出现一个“升降”动作,对此,QQ浏览器技术团队对该问题进行了测试复现,确认存在调起摄像头动作,但这一动作并不会开启摄像头,更不会拍摄或记录,现针对该问题作出如下说明1、问题原因及技术原理。为实现用户对一些功能使用(如扫描二维码),W3C规范有一个前端标准接口 navigator. mediadevices. enumeratedev-ices()可以遍历媒体设备,获取摄像头参数以供后续使用,Android有两套A来操作摄像头, camera1和 camera2,其中amera2不需要打开摄像头就可以获取摄像头参数,而camera1需要调用 Camera.Open()函数初始化,以获取摄像头句柄,然后通过摄像头句柄获取摄像头参数(https:developer android. com/reference/android/hardware/Camera).t虑到 camera2在AR摄像头等应用中在性能和兼容性上存在很多问题,手机QQ浏览器内核使用的是 camera1接口,导致VVONEX手机用户体验上会出现摄像头“升降”动作2、手机QQ浏览器并不会采集用户任何隐私。实际上,用户在用手机QQ浏览器打开某些网页过程中“需要获取摄像头的参数”情况下, VIVO NEX手机的摄像头并没有完全弹出(用户可以使用QQ浏览器打开网页https://qiyaoyuan. github.io/ ource/ wear.html测试复现),而摄像头也没有做任何拍摄或采集行为,手机QQ浏览器并不会采集用户任何隐私。该网页只调用了 mediadevices. enumerate Devices接口,并没有其他任何操作。3、我们将优化用户使用感受和体验。再次感谢广大用户对QQ浏览器的关注和意见反馈,对给用户造成误解和困惑表示歉意,我们将对这一使用体验进行优化和提示。QQ浏览器产品团队
IT之家河南洛阳网友
IT之家上海网友
IT之家广东中山网友
IT之家山东临沂网友
IT之家广西玉林网友
IT之家浙江温州网友
IT之家浙江杭州网友
IT之家湖北武汉网友
IT之家重庆网友
IT之家浙江杭州网友
IT之家四川成都网友
IT之家湖北武汉网友
社区总周榜
旗下,鲁ICP备号随笔 - 107}

我要回帖

更多关于 摄像头会升缩的手机 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信