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 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(); } }