Android 放大镜代码

作者 : admin 本文共2444个字,预计阅读时间需要7分钟 发布时间: 2024-06-17 共1人阅读

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) {

本站无任何商业行为
个人在线分享 » Android 放大镜代码
E-->