如何在Android项目中自定义相机聚焦

  介绍

这期内容当中小编将会给大家带来有关如何在Android项目中自定义相机聚焦,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。

public  class  CameraFocusView  extends  AppCompatImageView  {   ,   ,String  TAG =, getClass () . getname ();   ,//显示的圆宽显示的位置   ,public  float  currnetX =, 40;   ,public  float  currentY =, 50;   ,   ,Paint 颜料;   ,//半径大小   ,float  radis =, 100;   ,//透明度   ,int  alpha =, 255;   ,boolean  isAlpha =,假;   ,private  ValueAnimator  scaleAnimator colorAnimator;   ,   ,public  CameraFocusView (Context 上下文),{   ,超级(上下文);   ,init ();   ,}   ,   ,public  CameraFocusView (Context 上下文,@Nullable  AttributeSet  attrs), {   ,超级(上下文,attrs);   ,init ();   ,}   ,   ,public  CameraFocusView (Context 上下文,AttributeSet  attrs,, int  defStyleAttr), {   ,超级(上下文,attrs, defStyleAttr);   ,init ();   ,}   ,   ,public  void  init (), {=,,scaleAnimator  new  ValueAnimator ();   ,scaleAnimator.setFloatValues (80,, 70,, 90);   ,scaleAnimator.setDuration (500);   ,scaleAnimator.setInterpolator (new  LinearInterpolator ());   ,//伸缩动画效果   ,scaleAnimator.addUpdateListener (new  ValueAnimator.AnimatorUpdateListener (), {   @Override才能   public 才能;void  onAnimationUpdate (ValueAnimator 动画),{   radis 才能=,(浮动),animation.getAnimatedValue ();   无效才能();   if 才能;(radis ==, 90) {   ,,isAlpha =,真的;   ,,colorAnimator.start ();   ,,}   ,,}   ,});   ,=,,colorAnimator  new  ValueAnimator ();   ,colorAnimator.setIntValues (255 0);   ,colorAnimator.setDuration (3000);   ,colorAnimator.setInterpolator (new  LinearInterpolator ());   ,//显示透明度动画效果   ,colorAnimator.addUpdateListener (new  ValueAnimator.AnimatorUpdateListener (), {   @Override才能   public 才能;void  onAnimationUpdate (ValueAnimator 动画),{   alpha 才能=,(int), animation.getAnimatedValue ();   无效才能();   ,,}   ,});   ,   ,//初始化不显示   ,setVisibility(了);   ,}   ,   ,//开始现在圆框   ,public  void  startAnimator (), {=,isAlpha 假;   ,if  (scaleAnimator  !=, null), {   Log.e才能(标签,,“startAnimator: scaleAnimator  !=, null");   setVisibility才能(可见);   scaleAnimator.start才能();   ,}else  {   Log.e才能(标签,,“startAnimator: scaleAnimator ==, null");   ,}   ,}   ,   ,@Override   ,protected  void  onDraw (Canvas 画布),{   ,super.onDraw(画布);   ,//画笔设置=,,paint  new 油漆();   ,paint.setStyle (Paint.Style.STROKE);//画笔属性是空心圆   ,paint.setStrokeWidth(2);//设置画笔粗细   ,//抗锯齿   ,paint.setAntiAlias(真正的);   ,paint.setColor (Color.WHITE);   ,paint.setAlpha (255);   ,if  (isAlpha) {   if 才能;(alpha 祝辞,0,,,,alpha  & lt;, 155) {   paint.setAlpha才能(155);   }才能else  if  (alpha ==, 0) {   setVisibility才能(了);   ,,}   ,}   ,canvas.drawCircle (currnetX,当前y坐标,,x射线检验,,油漆);   ,   ,}   }

主界面图

如何在Android项目中自定义相机聚焦

调用方式,点击屏幕就能显示

public  class  MainActivity  extends  AppCompatActivity  implements  SurfaceHolder.Callback, Camera.PreviewCallback {   ,String  TAG =, getClass () . getname ();   ,SurfaceView  surfaceview;   ,SurfaceHolder  surfaceHolder;   ,Camera 镜头;   ,AutoFocusCallBackClass  autoFocusCallBackClass;   ,CameraFocusView  cameraFocusView;   ,   ,SensorControler  sensorControler;   ,   ,int  width =, 480;   ,int  height =, 800;   ,int  surfaceViewWidth =, 480;   ,int  surfaceViewHeight =, 800;   ,   ,@Override   ,protected  void  onCreate (Bundle  savedInstanceState), {   ,super.onCreate (savedInstanceState);   ,setContentView (R.layout.activity_main);   ,   ,ConstraintLayout  root =, findViewById (R.id.root);   ,=,,surfaceview  findViewById (R.id.surfaceview);=,,surfaceHolder  surfaceview.getHolder ();   ,   ,Display  Display =, getWindowManager () .getDefaultDisplay ();=,,width  display.getWidth ();=,,height  display.getHeight ();   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null

如何在Android项目中自定义相机聚焦