精华内容
下载资源
问答
  • 在相机APP中,手动对焦时都会出现一个对焦框,告诉用户相机正在对焦。那么这种对焦框是怎么实现的呢? 最近项目中有几个需求,实现手动对焦,自动对焦和对焦框。总体来说不是很复杂,在这片文章中我简单介绍一下。 ...

    前言

    在相机APP中,手动对焦时都会出现一个对焦框,告诉用户相机正在对焦。那么这种对焦框是怎么实现的呢?
    最近项目中有几个需求,实现手动对焦,自动对焦和对焦框。总体来说不是很复杂,在这片文章中我简单介绍一下。

    效果展示

     对焦框:

    对焦框是用自定义view实现的,实现方法还是和以前一样,继承View类,重载构造方法,初始化画笔,在onTouchEvent里面获取当前点击位置的x y轴坐标,在onDraw方法里面调用canvas的drawCircle方法,把我门刚才记录下来的x y轴坐标,半径,画笔等参数传给drawCircle方法就可以画出对焦框了。

    点击事件:

    如果在外部直接调用view的setOnclickListener方法是获取不到点击事件的,所以点击事件需要使用interface来实现,在外部实现ClickEvent这个接口就可以获取到view的点击事件了。

    interface ClickEvent {
             fun clicked()
        }
    
    private var clickEvent: ClickEvent? = null
    
        
    fun setClickEvent(clickEvent: ClickEvent) {
            this.clickEvent = clickEvent
        }

    因为相机app刚打开时,对焦框是不可见的,所以我把默认颜色设置成透明色。当view点击时才会显示出来,这里就修改paint的颜色为白色即可。然后对焦完成后把对焦框隐藏掉,把对焦框颜色设置为透明。

    其实还有一种方法是可以使用view的visibility属性,调用invisible或gone方法。但是当你修改view的显示状态时会间接地调用invalidate方法,随后onDraw方法就会被调用。我们在onDraw方法里面传递的x y坐标是全局变量,所以每次调用invisible/visible方法会调用onDraw方法,这里传进去的x y坐标是我们上一次点击位置,所以当你点击屏幕时对焦框的位置是不对的,有可能是显示在上次点击的那个位置上。为了避免这种情况就用了改变颜色的方式。

     

    完整代码

    
    import android.annotation.SuppressLint
    import android.content.Context
    import android.graphics.Canvas
    import android.graphics.Color
    import android.graphics.Paint
    import android.util.AttributeSet
    import android.view.MotionEvent
    import android.view.View
    
    class CircleView@JvmOverloads constructor(
        context: Context,
        attrs: AttributeSet? = null,
        defStyleAttr: Int = 0
    ) : View(context, attrs, defStyleAttr){
    
        interface ClickEvent {
             fun clicked()
        }
    
        private var clickEvent: ClickEvent? = null
    
        fun setClickEvent(clickEvent: ClickEvent) {
            this.clickEvent = clickEvent
        }
    
        private val paint: Paint
        private val radius = 80f
        private var currentX = 0.0f
        private var currentY = 0.0f
    
        init {
            paint = Paint()
            paint.color = Color.TRANSPARENT
            paint.style = Paint.Style.STROKE
            paint.strokeWidth = 4f
        }
    
        override fun onDraw(canvas: Canvas?) {
            super.onDraw(canvas)
            canvas?.drawCircle(currentX, currentY, radius, paint)
        }
    
        @SuppressLint("ClickableViewAccessibility")
        override fun onTouchEvent(event: MotionEvent?): Boolean {
    
            when (event?.action) {
                MotionEvent.ACTION_DOWN -> {
                    currentX = event.x
                    currentY = event.y
                    paint.color = Color.WHITE
                    clickEvent?.clicked()
                    invalidate()
                }
            }
            return true
        }
    
        fun invisible(){
            paint.color = Color.TRANSPARENT
            invalidate()
        }
    
    }

     xml代码

       <com.example.camera.CircleView
            android:id="@+id/circle"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_gravity="center">
    
        </com.example.camera.CircleView>

     Main Activity

        private var myAutoFocusCallback : Camera.AutoFocusCallback? = null
    
        private fun focusListener(){
            myAutoFocusCallback = Camera.AutoFocusCallback {isFocused , _ ->
                if (isFocused) {
                    Log.d("test", "对焦成功")
                    circle.invisible()
                    showToast("对焦成功")
                } else {
                    Log.d("test", "对焦失败")
                }
            }
        }
    
        private fun getFocus() {
            Log.d("test", "正在对焦")
            camera?.autoFocus(myAutoFocusCallback)
        }
    
        override fun clicked() {
            getFocus()
        }

    这里简单介绍介绍一下对焦功能的实现方法:

    核心代码是camera的autoFocus方法。

    手动对焦:每次点击surface时可以调用camera的autoFocus方法进行对焦。

    如果想要实现自动对焦功能,可以借助计时器,比如每隔200毫秒校准一次,校准完成后关闭计时器等。

     

    展开全文
  • 目录1、问题描述2、解决思路(1)对焦并绘制(2)清除对焦框3、实现方法(1)主要类文件(2)代码及解析MainActivity.javaOverCameraView.java 1、问题描述 在Android开发时,需要实现点击屏幕自动对焦,并在焦点处...

    1、问题描述

    在Android开发时,需要实现点击屏幕自动对焦,并在焦点处绘制对焦框,对焦完成后对焦框消失。

    2、解决思路

    首先,确保已经完成相机功能的相关代码,可参考谷歌官方文档Camera
    程序运行的整个过程,由点击屏幕(onTouch())触发对焦和绘制对焦框,在对焦完成后,通过Camera.AutoFocusCallback()回调函数清除对焦框,流程图如下图所示。

    (1)对焦并绘制

    getX, getY, setTouchFoucusRect
    onTouch
    获取焦点位置
    设置对焦区域参数
    对焦doTouchFocus
    在焦点处绘制对焦框drawTouchFocusRect

    (2)清除对焦框

    AutoFocusCallback
    对焦完成
    清除对焦框disDrawTouchFocusRect

    3、实现方法

    (1)主要类文件

    与本文相关的类的简介:
    MainActivity.java
    拍照界面,继承Activity并实现OnTouchListener接口。
    OverCameraView.java
    继承AppCompatImageView,和相机预览界面的SurfaceView放在一个Layout中,用来绘制对焦框。

    (2)代码及解析

    MainActivity.java

    这里只给出MainActivity.java跟本文有关的函数。
    定义变量:

    //定义Camera变量,实现回调和其它功能
    private Camera mCamera;
    
    //SurfaceView和OverCameraView在同一个Layout中,长宽都是match_parent
    private SurfaceView mCameraSurfaceView;//相机的预览控件
    private OverCameraView mOverCameraView;//绘制对焦框控件
    
    //相机预览控件接收Touch事件
    mCameraSurfaceView.setOnTouchListener(this);
    

    定义Camera.AutoFocusCallback:

    private Camera.AutoFocusCallback autoFocusCallback = new Camera.AutoCloseable(){
    	@Override
    	public void onAutoFocus(boolean success, Camera camera){
    		/*
    		其它代码
    		*/
    		mOverCameraView.disDrawTouchFocusRect();//清除对焦框
    	}
    

    覆写onTouch(View v, MotionEvent event)方法:

    @Override
    public boolean onTouch(View v,MotionEvent event){
    	if(event.getAction() == MotionEvent.ACTION_DOWN){
    		//获取点击屏幕的位置,作为焦点位置,用于计算对焦区域
    		float x=event.getX();
    		float y=event.getY();
    
    		//对焦并绘制对焦矩形框
    		mOverCameraView.setTouchFoucusRect(mCamera,autoFocusCallback, x, y);
    	}
    	return false;
    }
    

    OverCameraView.java

    OverCameraView.java类中有两个重要的函数,setTouchFoucusRect函数用来设置对焦区域并绘制对焦框,disDrawTouchFocusRect函数清除对焦框。

    public class OverCameraView extends AppCompatImageView{
    	private Context context;
    	
    	private Rect touchFocusRect;//焦点附近设置矩形区域作为对焦区域
    	private Paint touchFocusPaint;//新建画笔
    	
    	public OverCameraView(Context context){
    		this(context, null, 0);
    	}
    	public OverCameraView(Context context, AttributeSet attrs){
    		this(context, attrs, 0);
    	}
    	public OverCameraView(Context context, AttributeSet attrs, int defStyleAttr){
    		super(context, attrs, defStyleAttr);
    		init(context);
    	}
    	
    	private void init(Context context){
    		this.context = context;
    		//画笔设置
    		touchFocusPaint = new Paint();
    		touchFocusPaint.setColor(Color.GREEN);
    		touchFocusPaint.setStyle(Paint.Style.STR OKE);
    		touchFocusPaint.setStrokeWidth(3);
    	}
    	
    	//对焦并绘制对焦矩形框
    	public void setTouchFoucusRect(Camera camera, Camera.AutoFocusCallback autoFocusCallback, float x, float y){
    		//以焦点为中心,宽度为200的矩形框
    		touchFocusRect = new Rect((int)(x - 100), (int)(y - 100), (int)(x + 100), (int)(y + 100));
    		
    		//对焦区域
    		final Rect targetFocusRect=new Rect(
    			touchFocusRect.left*2000/this.getWidth() - 1000,
    			touchFocusRect.top*2000/this.getHeight() - 1000,
    			touchFocusRect.right*2000/this.getWidth() - 1000,
    			touchFocusRect.bottom*2000/this.getHeight() - 1000);
    		
    		doTouchFocus(camera,autoFocusCallback,targetFocusRect);//对焦
    		postInvalidate();//刷新界面,调用onDraw(Canvas canvas)函数绘制矩形框
    	}
    
    	//设置camera参数,并完成对焦
    	public void doTouchFocus(Camera camera, Camera.AutoFocusCallback autoFocusCallback, final Rect tfocusRect){
    		try{
    			final list<Camera.Area> focusList = new ArrayList<~>();
    			Camera.Area focusList = new Camera.Area(tfocusRect, 1000);//相机参数:对焦区域
    			focusList.add(focusArea);
    			
    			Camera.Parameters para = camera.getParameters();
    			para.setFocusAreas(focusList);
    			para.setMeteringAreas(focusList);
    			camera.setParameters(para);//相机参数生效
    			camera.autoFocus(autoFocusCallback);
    		} catch(Exception e){
    		
    		}
    	}
    
    	//对焦完成后,清除对焦矩形框
    	public void disDrawTouchFocusRect(){
    		touchFocusRect = null;//将对焦区域设置为null,刷新界面后对焦框消失
    		postInvalidate();//刷新界面,调用onDraw(Canvas canvas)函数
    	}
    
    	@Override
    	protected void onDraw(Canvas canvas){ //在画布上绘图,postInvalidate()后自动调用
    		drawTouchFocusRect(canvas);
    		super.onDraw(canvas);
    	}
    
    	private void drawTouchFocusRect(Canvas canvas){
    		if(null != touchFocusRect){
    			//根据对焦区域targetFocusRect,绘制自己想要的对焦框样式,本文在矩形四个角取L形状
    			//左下角
    			canvas.drawRect(touchFocusRect.left-2, touchFocusRect.bottom, touchFocusRect.left+20, touchFocusRect.bottom+2, touchFocusPaint);
    			canvas.drawRect(touchFocusRect.left-2, touchFocusRect.bottom-20, touchFocusRect.left, touchFocusRect.bottom, touchFocusPaint);
    			//左上角
    			canvas.drawRect(touchFocusRect.left-2, touchFocusRect.top-2, touchFocusRect.left+20, touchFocusRect.top, touchFocusPaint);
    			canvas.drawRect(touchFocusRect.left-2, touchFocusRect.top, touchFocusRect.left, touchFocusRect.top+20, touchFocusPaint);
    			//右上角
    			canvas.drawRect(touchFocusRect.right-20, touchFocusRect.top-2, touchFocusRect.right+2, touchFocusRect.top, touchFocusPaint);
    			canvas.drawRect(touchFocusRect.right, touchFocusRect.top, touchFocusRect.right+2, touchFocusRect.top+20, touchFocusPaint);
    			//右下角
    			canvas.drawRect(touchFocusRect.right-20, touchFocusRect.bottom, touchFocusRect.right+2, touchFocusRect.bottom+2, touchFocusPaint);
    			canvas.drawRect(touchFocusRect.right, touchFocusRect.bottom-20, touchFocusRect.right+2, touchFocusRect.bottom, touchFocusPaint);
    		}
    	}
    	
    }
    
    展开全文
  • Camera手动对焦和设置对焦框

    千次阅读 2019-04-28 09:25:57
    1.手动对焦 1.1思路: 我想在用户点击屏幕某个点时,以这个点做一个对焦区域,重新设定对焦区域后,会触发相机对焦,画面有明显的亮度变化。 触发图像亮度变化,实际上这已经不是对焦的范畴了,而是测光。从效果...

    1.手动对焦

    1.1思路:

    我想在用户点击屏幕某个点时,以这个点做一个对焦区域,重新设定对焦区域后,会触发相机对焦,画面有明显的亮度变化。
    触发图像亮度变化,实际上这已经不是对焦的范畴了,而是测光。从效果上看,系统相机响应手动对焦的同时根据焦点重新测光。

    1.2相关方法

    //        getMaxNumFocusAreas:获取支持的对焦区域的个数
    //        setFocusAreas:设置对焦区域列表
    //        getFocusAreas:获取对焦区域列表
    //        getMaxNumMeteringAreas: 获取支持的测光区域的个数
    //        setMeteringAreas:设置测光区域列表
    //        getMeteringAreas:获取测光区域列表
    Camera.Parameters parameters = camera.getParameters();
    //不支持设置自定义聚焦,则使用自动聚焦,返回
    if (parameters.getMaxNumFocusAreas() <= 0) {
        camera.autoFocus(autoFocusCallback);
        return;
    }

    1.3相关代码

    解释

    由于camera中area映射如下

    一般范围是横坐标x和纵坐标Y的取值范围为-1000到1000.

     

    二.自定义变焦框

    2.1思路

    点击屏幕(onTouch())触发对焦和绘制对焦框,在对焦完成后,通过Camera.AutoFocusCallback()回调函数清除对焦框

    2.2代码

    public class CameraPointView extends AppCompatImageView {
        private Context context;
    
        private Rect touchFocusRect;//焦点附近设置矩形区域作为对焦区域
        private Paint touchFocusPaint;//新建画笔
    
        public CameraPointView(Context context){
            this(context, null, 0);
        }
        public CameraPointView(Context context, AttributeSet attrs){
            this(context, attrs, 0);
        }
        public CameraPointView(Context context, AttributeSet attrs, int defStyleAttr){
            super(context, attrs, defStyleAttr);
            init(context);
        }
    
        private void init(Context context){
            this.context = context;
            //画笔设置
            touchFocusPaint = new Paint();
            touchFocusPaint.setColor(Color.GREEN);
            touchFocusPaint.setStyle(Paint.Style.STROKE);
            touchFocusPaint.setStrokeWidth(3);
        }
    
        //对焦并绘制对焦矩形框
        public void setTouchFoucusRect(Camera camera, Camera.AutoFocusCallback autoFocusCallback, float x, float y){
            //以焦点为中心,宽度为200的矩形框
            touchFocusRect = new Rect((int)(x-100), (int)(y - 200), (int)(x+100), (int)(y));
            Log.d("lcb",getWidth()+"  "+this.getWidth()+"  x:"+x+" y:"+y); 
       postInvalidate();//刷新界面,调用onDraw(Canvas canvas)函数绘制矩形框
    }
    //对焦完成后,清除对焦矩形框
    public void disDrawTouchFocusRect(){
        touchFocusRect = null;//将对焦区域设置为null,刷新界面后对焦框消失
        postInvalidate();//刷新界面,调用onDraw(Canvas canvas)函数
    }
    
    @Override
    protected void onDraw(Canvas canvas){ //在画布上绘图,postInvalidate()后自动调用
        drawTouchFocusRect(canvas);
        super.onDraw(canvas);
    }
    
    private void drawTouchFocusRect(Canvas canvas){
        if(null != touchFocusRect){
            Log.e("lcb","left:"+touchFocusRect.left+"  top"+touchFocusRect.top+" right:"+touchFocusRect.right+" botttom:"+touchFocusRect.bottom);
            //根据对焦区域targetFocusRect,绘制自己想要的对焦框样式,本文在矩形四个角取L形状
            //左下角
            canvas.drawRect(touchFocusRect.left-2, touchFocusRect.bottom, touchFocusRect.left+20, touchFocusRect.bottom+2, touchFocusPaint);
            canvas.drawRect(touchFocusRect.left-2, touchFocusRect.bottom-20, touchFocusRect.left, touchFocusRect.bottom, touchFocusPaint);
            //左上角
            canvas.drawRect(touchFocusRect.left-2, touchFocusRect.top-2, touchFocusRect.left+20, touchFocusRect.top, touchFocusPaint);
            canvas.drawRect(touchFocusRect.left-2, touchFocusRect.top, touchFocusRect.left, touchFocusRect.top+20, touchFocusPaint);
            //右上角
            canvas.drawRect(touchFocusRect.right-20, touchFocusRect.top-2, touchFocusRect.right+2, touchFocusRect.top, touchFocusPaint);
            canvas.drawRect(touchFocusRect.right, touchFocusRect.top, touchFocusRect.right+2, touchFocusRect.top+20, touchFocusPaint);
            //右下角
            canvas.drawRect(touchFocusRect.right-20, touchFocusRect.bottom, touchFocusRect.right+2, touchFocusRect.bottom+2, touchFocusPaint);
            canvas.drawRect(touchFocusRect.right, touchFocusRect.bottom-20, touchFocusRect.right+2, touchFocusRect.bottom, touchFocusPaint);
        }
    }

    关于画图和安卓坐标系问题可以参考我之前两篇文章:

    安卓坐标系       Canvas安卓画图类

    ps:安卓画图的坐标和之前camera中area映射的坐标有区别。

    drawRect(float left, float top, float right, float bottom

     

     

    展开全文
  • 好开心,自定义相机的对焦框出来了,虽然感觉有点蛋筒。之前也想用画图画的 ,可是因为蛋筒的数据传递问题抛弃了自定义SurfaceView,在Acivity中不能override onDraw方法,暂时不知道可行性。   所以采取的方式是...

    1.

    好开心,自定义相机的对焦框出来了,虽然感觉有点蛋筒。之前也想用画图画的 ,可是因为蛋筒的数据传递问题抛弃了自定义SurfaceView,在Acivity中不能override onDraw方法,暂时不知道可行性。

     

    所以采取的方式是,在相机预览的界面的点击位置显示一个对焦框的图片。这个图片位置的设定,没有直接的通过中心点坐标设置的方法,只能绕道,获得触摸点坐标后,设置图片的Margin。

     

    ViewGroup.MarginLayoutParams 中有setMargins(int left, int top, int right, int bottom)方法

     

    可以设置控件在界面上的上下左右margin。

     

    我要动态显示的ImageView在一个LinearLayout中的FrameLayout中,所以给ImageView设置Parameters的时候用到

    FrameLayout.LayoutParams

     

    关键的代码

    	/**
    	 * @描述 自动对焦
    	 * */
    	AutoFocusCallback autoFocus = new AutoFocusCallback() {
    		
    
    		@Override
    		public void onAutoFocus(boolean success, Camera camera) {
    
    			if (success) {
    				ViewGroup.MarginLayoutParams margin = new ViewGroup.MarginLayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT);
    				margin.setMargins((int)(x-46.5), (int)(y-46.5), 0, 0);
    				FrameLayout.LayoutParams params = new FrameLayout.LayoutParams(
    						margin);
    				focus.setLayoutParams(params);
    				System.out.println(focus.getLayoutParams().getClass());
    				focus.setVisibility(ImageView.VISIBLE);
    				/*
    				 * 2秒后,自动对焦框消失
    				 * */ 
    				Handler timeHandler = new Handler();
    				timeHandler.post(new Runnable() {
    
    					@Override
    					public void run() {
    						try {
    							Thread.sleep(2000);
    							if (0 == focus.getVisibility()) {
    								focus.setVisibility(ImageView.GONE);
    							}
    						} catch (InterruptedException e) {
    							e.printStackTrace();
    						}
    
    					}
    				});
    			}
    		}
    
    	};

     

     

    2. 拍完照后,在当前界面有一个ScrollView对已经拍摄的照片的缩略图的展示,怎样让那个ScrollView每次滚动到当前拍摄的界面呢。当然用到ScrollView的smoothScrollTo(int x, int y)方法,把它放到一个Runnable中去执行。

    每个ImageView都有自己的高度,记录ImageView的个数,x=0,y=ImageView的高度×ImageView的个数。

    感谢eoe某用户 吻

     

    关键代码

    	Handler smoothHandler = new Handler();
    				smoothHandler.post(new Runnable() {
    
    					@Override
    					public void run() {
    						int offset = iv.getMeasuredHeight()
    								* photoPromts.length;
    						if (offset < 0) {
    							offset = 0;
    						}
    						scrollView.smoothScrollTo(0, offset);
    					}
    				});

     

     

    3.在ScrollView中有一个LinearLayout,在这个LinearLayout中才是多个ImageView,怎样给这些ImageView设置监听,能够在点击他们时可以预览大图呢。直接给它setOnclickListener就可以了,只不过我这里的ImageView是final类型,会报

    The final local variable iv cannot be assigned, since it is defined in an enclosing type 编译错。

    就再定义一个ImageView去代表它

    展开全文
  • SweetCamera-master/.gitignoreSweetCamera-master/.gradle/2.8/taskArtifacts/cache.propertiesSweetCamera-master/.gradle/2.8/taskArtifacts/cache.properties.lockSweetCamera-master/.gradle/2.8/taskArtifacts...
  • 自动对焦拍照,以及可移动方框定位。涉及到拍照、自定义view、可移动选择,以及组件定位等知识点。
  • 问题:相机中,连续4、5次点屏手动对焦,会出现对焦框不消失,此时无法拍照 分析: 底层对焦没有返回,导致上层卡死 方案: 添加对焦超时机制,超时后直接判定为对焦失败 Index: packages/apps/SnapdragonCamera/src...
  • 上一篇文章中,我们实现了相机的基本功能。今天我们来实现触摸对焦功能。用户触摸屏幕,显示对焦框,然后自动对焦(其实并不是用户按哪里对焦哪里,这个官网上有例子,但简单起见,这里就使用自动对焦)。
  • 目的: 除非一些特定操作,否则始终聚焦指定的input 组件:clickoutside.js const clickoutsideContext = '@@clickoutsideContext' export default { bind(el, binding, vnode) { const documentHandler = (e) =...
  • ios二维码扫描的静态库ZbarSDK,支持armv7s、arm64,并解决ZBarReaderView自动对焦的蓝色
  • 对焦范围

    千次阅读 2015-01-03 14:56:13
    对焦范围 对焦范围即数码相机能清晰成像的范围,通常分为一般拍摄距离与近拍距离。相机的一般拍摄距离通常都标示为“**cm--无穷远”,而且大部分数码相机则往往还会提供近距离拍摄功能(Macro),来弥补一般拍摄...
  • 在解决项目中相机某些机型无法自动对焦的问题时,在网上找到了一些资料,写下解决问题过程,以备查看。 Android相机实时自动对焦的完美实现 Android图像滤镜框架GPUImage从配置到应用 GPUImage for Android ...
  • 主要为大家详细介绍了android手动实现相机自动和手动对焦功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
  • 手机拍照反差对焦、相位对焦和激光对焦系统解析 参考网址:https://jingyan.baidu.com/article/22a299b5c882a29e19376aad.html 手机拍照三大对焦系统解析#资料课代表| 讲窍门# 你最常使用的拍照工具是什么?...
  • 代码(尤其是对焦框显示)参考了许多Blog和Github,修修补补改改挺多地方,记录一下,侵删私信或注明出处。 录制 主要的类 MediaRecorder:安卓封装的视频录制的类 AutoFitTextureView:继承自TextureView,...
  • 自动对焦 AF

    万次阅读 2017-12-19 17:00:00
    AF性能是判断相机好坏的重要指标,主要从准确度和速度两个方面来进行考察,本文将介绍自动对焦的几种方式。 自动对焦目前主流的大致上有CDAF,PDAF和Laser assist AF这三种。前两种属于被动式,也就是说相机不需要...
  • Camera对焦模式

    千次阅读 2017-03-29 10:39:40
    1、对焦模式 auto //自动对焦 infinity //无穷远 maro //微距 continuous-picture //连续对焦 fixed
  • 关于Camera对焦

    2018-12-01 06:08:34
    自动对焦 1、通过Camera的AutoFocusCallback camera.cancelAutoFocus(); //每次对焦前取消自动对焦 final String currentFocusMode = params.getFocusMode(); params.setFocusMode(Camera.Parameters.FOCUS_MODE_...
  • 原理文章:... 需求背景:人脸比对需要比对正面照和持证照,正面照如果是竖的话,会比对不上,因此拍照保存的照片要正向保存 功能:带拍摄区域边框、半透明遮罩层、支持点击屏幕对焦、自动裁剪出所需大小
  • 首先在【对焦功能】功能选择中,选中【设置】按钮,如果软件处于正在测试阶段,则停止测试,进入参数设置模式,在【对焦设置】参数中的【设置阈值】编辑中输入用户需要设定的参数。  在完成参数设置后,再在...
  • 对焦原理之反差式对焦    通常意义上来说,得到一张清晰合焦的照片,是我们摄影的基本功。而这一切,都需要一个必经的过程——对焦。这是一个很基础,但又很关键的操作,虽然对于我们所能接触的绝大多数相机手机...
  • Android Camera对焦相关

    千次阅读 2017-03-27 10:31:07
    一、Camera 支持对焦模式简介在维护MTK Camera模块的时候,遇到Camera对焦的问题,Camera支持的对焦模式定义在frameworks/base/core/java/android/hardware/Camera.java下,主要有FOCUS_MODE_AUTO 自动对焦 ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 3,840
精华内容 1,536
关键字:

对焦框