使用按钮更改属性use_flash true / false

时间:2018-01-16 09:18:21

标签: android android-layout barcode-scanner

我使用条形码阅读器制作了条码扫描器。布局上激活的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。

1 个答案:

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

此代码有助于满足您的要求。并且不要忘记要求获得相机的许可。