我使用条形码阅读器制作了条码扫描器。布局上激活的Flash可以很好地使用...
但是按钮onclick,我不明白使用它... 有什么可以帮助的吗?
布局扫描仪:
import numpy as np
a = np.array([[0,0,0,0],[1,1,1,1],[2,3,4,5],[6,7,8,9]])
b = np.array([20,0,10,5])
print(a+b)
# [[20 0 10 5]
# [21 1 11 6]
# [22 3 14 10]
# [26 7 18 14]]
活动扫描程序:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.material.components.activity.ScanLogin">
<fragment
android:id="@+id/barcode_scanner"
android:name="info.androidhive.barcode.BarcodeReader"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:auto_focus="true"
app:use_flash="false" />
<info.androidhive.barcode.ScannerOverlay
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_alignParentTop="true"
android:layout_marginTop="-100dp"
android:background="@drawable/bg_red"
app:line_color="@color/global_color_green_primary"
app:line_speed="6"
app:line_width="4"
app:square_height="200"
app:square_width="200" />
<ImageButton
android:id="@+id/btnSwitch"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBottom="@+id/barcode_scanner"
android:layout_centerHorizontal="true"
android:layout_marginBottom="20dp"
android:background="@null"
android:contentDescription="@null"
android:src="@drawable/btn_off" />
</RelativeLayout>
toglebutton用于将按钮的状态更改为开/关。 playound用于播放声音... toglebutton和playound没问题。函数use_flash中的promlem。
答案 0 :(得分:1)
private void getCamera() {
if (camera == null) {
try {
camera = Camera.open();
params = camera.getParameters();
} catch (Exception e) {
}
}}
private void turnOffFlash() {
if (isFlashOn) {
if (camera == null || params == null) {
return;
}
// play sound
params = camera.getParameters();
params.setFlashMode(Parameters.FLASH_MODE_OFF);
camera.setParameters(params);
camera.stopPreview();
isFlashOn = false;
// changing button/switch image
toggleButtonImage();
}}
private void turnOnFlash() {
if (!isFlashOn) {
if (camera == null || params == null) {
return;
}
// play sound
playSound();
params = camera.getParameters();
params.setFlashMode(Parameters.FLASH_MODE_TORCH);
camera.setParameters(params);
camera.startPreview();
isFlashOn = true;
// changing button/switch image
toggleButtonImage();
}}
此代码有助于满足您的要求。并且不要忘记要求获得相机的许可。