package com.yw.sdkdemo.camera;
|
|
import android.content.Intent;
|
import android.os.Bundle;
|
import android.os.RemoteException;
|
import android.util.Log;
|
import android.view.View;
|
import android.widget.Button;
|
import android.widget.Toast;
|
|
import androidx.annotation.Nullable;
|
import androidx.appcompat.app.AppCompatActivity;
|
|
import com.yw.camera.CameraManager;
|
import com.yw.camera.CameraStatusInfo;
|
import com.yw.camera.IShootCallback;
|
import com.yw.camera.WaterMarkPos;
|
import com.yw.camera.YuvColor;
|
import com.yw.sdkdemo.R;
|
import com.yw.settings.YwSettings;
|
import com.yw.shoot.ShootInfo;
|
|
import java.util.Arrays;
|
import java.util.List;
|
|
/**
|
* Created by xushuang on 2024/5/9
|
* E-mail: mitgic92@gmail.com
|
* Description:
|
*/
|
public class CameraActivity extends AppCompatActivity implements View.OnClickListener {
|
|
private static final String TAG = CameraActivity.class.getSimpleName();
|
private Button bt_get_camera_status_info;
|
|
private Button bt_signal_register;
|
private Button bt_signal_unregister;
|
|
private Button bt_take_picture;
|
private Button bt_preview;
|
private Button bt_parse_yuv;
|
private Button bt_water_mark;
|
|
|
private CameraStatusInfo cameraStatusInfo;
|
|
@Override
|
protected void onCreate(@Nullable Bundle savedInstanceState) {
|
super.onCreate(savedInstanceState);
|
setContentView(R.layout.activity_camera);
|
|
initView();
|
initListener();
|
}
|
|
|
private void initView() {
|
bt_get_camera_status_info = (Button) findViewById(R.id.bt_get_camera_status_info);
|
|
bt_signal_register = (Button) findViewById(R.id.bt_signal_register);
|
bt_signal_unregister = (Button) findViewById(R.id.bt_signal_unregister);
|
|
bt_take_picture = (Button) findViewById(R.id.bt_take_picture);
|
bt_preview = (Button) findViewById(R.id.bt_preview);
|
bt_parse_yuv = (Button) findViewById(R.id.bt_parse_yuv);
|
bt_water_mark = (Button) findViewById(R.id.bt_water_mark);
|
|
|
}
|
|
private CameraManager.CameraSingalStatusCallback cameraSingalStatusCallback = new CameraManager.CameraSingalStatusCallback() {
|
@Override
|
public void onSingalStatusCallback(boolean[] booleans) {
|
cameraStatusInfo = CameraManager.getInstance().getCameraStatusInfo();
|
runOnUiThread(new Runnable() {
|
@Override
|
public void run() {
|
Toast.makeText(CameraActivity.this, "onSingalStatusCallback: " + Arrays.toString(booleans), Toast.LENGTH_SHORT).show();
|
}
|
});
|
|
}
|
};
|
|
|
private void initListener() {
|
bt_get_camera_status_info.setOnClickListener(this);
|
bt_signal_register.setOnClickListener(this);
|
bt_signal_unregister.setOnClickListener(this);
|
bt_take_picture.setOnClickListener(this);
|
bt_preview.setOnClickListener(this);
|
bt_parse_yuv.setOnClickListener(this);
|
bt_water_mark.setOnClickListener(this);
|
|
|
}
|
|
@Override
|
public void onClick(View v) {
|
switch (v.getId()) {
|
case R.id.bt_get_camera_status_info:
|
if (cameraStatusInfo == null) {
|
return;
|
}
|
CameraStatusInfo.SD_STATUS status = cameraStatusInfo.getSd1Status();
|
Toast.makeText(CameraActivity.this, cameraStatusInfo.toString(), Toast.LENGTH_SHORT).show();
|
break;
|
|
case R.id.bt_signal_register:
|
CameraManager.getInstance().registerCameraSingalStatusCallback(cameraSingalStatusCallback);
|
break;
|
case R.id.bt_signal_unregister:
|
CameraManager.getInstance().unRegisterCameraSingalStatusCallback(cameraSingalStatusCallback);
|
break;
|
case R.id.bt_preview:
|
startActivity(new Intent(this, PreviewActivity.class));
|
break;
|
|
case R.id.bt_take_picture:
|
boolean result5 = CameraManager.getInstance().shoot(1, 0, 0, 50, 50, 50, 0, 0, new IShootCallback.Stub() {
|
|
@Override
|
public void onShootSuccess(List<ShootInfo> list) throws RemoteException {
|
Log.d(TAG, "onShootSuccess: size" + list.size());
|
}
|
|
@Override
|
public void onShootFail(String s) throws RemoteException {
|
Log.d(TAG, "onShootFail: " + s);
|
}
|
});
|
Toast.makeText(CameraActivity.this, "result:" + result5, Toast.LENGTH_SHORT).show();
|
break;
|
case R.id.bt_parse_yuv:
|
YuvColor yuvColor = CameraManager.getInstance().parseYuvColor(0, 1.0f);
|
if (yuvColor == YuvColor.GRAY) {
|
Toast.makeText(CameraActivity.this, "灰色", Toast.LENGTH_SHORT).show();
|
} else if (yuvColor == YuvColor.NORMAL) {
|
Toast.makeText(CameraActivity.this, "彩色", Toast.LENGTH_SHORT).show();
|
} else {
|
Toast.makeText(CameraActivity.this, "未知", Toast.LENGTH_SHORT).show();
|
}
|
break;
|
case R.id.bt_water_mark:
|
CameraManager.getInstance().setWaterMark(0, WaterMarkPos.B4,"自定义驾校");//机构
|
CameraManager.getInstance().setWaterMark(0, WaterMarkPos.B3,"自定义教练");//教练
|
CameraManager.getInstance().setWaterMark(0, WaterMarkPos.B2,"自定义学员");//学员
|
YwSettings.Global.PLATE_NUMBER.set("自定义车牌");
|
CameraManager.getInstance().setWaterMark(0, WaterMarkPos.B1,"自定义车牌");//车牌
|
break;
|
|
}
|
}
|
|
|
@Override
|
protected void onDestroy() {
|
super.onDestroy();
|
|
}
|
}
|