Android 放大镜代码

private static final int BACK_CAMERA = 0; //判断相机ID

private static final int ROTATION = 90;

private static final int REVERT = 180;

private static final int PERVIEW_WIDTH = 320;

private static final int PREVIEW_HEIGHT = 240;

private int mZoomMax;

private SeekBar mSeekBar;

@Override

protected void onCreate(@Nullable Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_camer);

getWindow().setFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON,

WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);

getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,

WindowManager.LayoutParams.FLAG_FULLSCREEN);

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);

mSurfaceView = findViewById(R.id.surface
View);

holder = mSurfaceView.getHolder(); //获得句柄

holder.addCallback(this); //添加回调

holder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS); //兼容旧的API

mSeekBar = findViewById(R.id.seekbar);

mSeekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {

@Override

public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {

value = progress + 50;

}

@Override

public void onStartTrackingTouch(SeekBar seekBar) {

//TODO Auto-generator method stub

}

@Override

public void onStopTrackingTouch(SeekBar seekBar) {

parameters.setZoom(value);

mCamera.setParameters(parameters);

mCamera.startPreview();

}

});

}

@Override

protected void onPause() {

super.onPause();

try{

if(mCamera != null){

mCamera.stopPreview();

mCamera.release();

mCamera = null;

}

}catch (Exception e){

e.printStackTrace();

}

}

private void startCamera(){

if(mFlag){

if(mCamera != null){

mCamera.stopPreview();

mCamera.release();

mCamera = null;

}

}

try{

mCamera = Camera.open(mCameraId);

}catch (Exception e){

e.printStackTrace();

}

if(mCamera != null){

mCamera.setDisplayOrientation(mCameraId == BACK_CAMERA ? ROTATION :ROTATION);

parameters = mCamera.getParameters();

parameters.setFocusMode(Camera.Parameters.FOCUS_MODE_CONTINUOUS_PICTURE);

parameters.setPictureFormat(PixelFormat.JPEG);

parameters.set(“orientation”,“portrait”);

parameters.setPreviewSize(PERVIEW_WIDTH,PREVIEW_HEIGHT);

parameters.setRotation(mCameraId == BACK_CAMERA ? ROTATION : REVERT + ROTATION);

mZoomMax = value;

parameters.setZoom(mZoomMax);

mCamera.setParameters(parameters);

try{

mCamera.setPreviewDisplay(holder);

mCamera.startPreview();

mFlag = true;

} catch (IOException e) {

e.printStackTrace();

}

}

}

@Override

public void surfaceCreated(SurfaceHolder holder) {

}

@Override

public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) {

startCamera();

}

@Override

public void surfaceDestroyed(SurfaceHolder holder) {

相关推荐

  1. Android 放大镜代码

    2024-06-17 14:10:05       39 阅读
  2. Android代码混淆简单介绍

    2024-06-17 14:10:05       63 阅读
  3. Android制作微信添加多个图片,放大图片

    2024-06-17 14:10:05       36 阅读
  4. QCustomPlot移植android后实现曲线放大缩小

    2024-06-17 14:10:05       33 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-06-17 14:10:05       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-06-17 14:10:05       106 阅读
  3. 在Django里面运行非项目文件

    2024-06-17 14:10:05       87 阅读
  4. Python语言-面向对象

    2024-06-17 14:10:05       96 阅读

热门阅读

  1. ThreadLocal 详讲

    2024-06-17 14:10:05       22 阅读
  2. FileUtils类中常用方法的介绍

    2024-06-17 14:10:05       28 阅读
  3. HIVE及SparkSQL优化经验

    2024-06-17 14:10:05       35 阅读
  4. Docker Desktop Installer For Windows 国内下载地址

    2024-06-17 14:10:05       57 阅读
  5. VB.net调用VC DLL(二)

    2024-06-17 14:10:05       32 阅读
  6. 教学资源共享平台的设计

    2024-06-17 14:10:05       34 阅读