Как изменить внешний вид ZXingScannerView по умолчанию? - PullRequest
0 голосов
/ 04 февраля 2019

Я делаю простое приложение для чтения штрих-кодов с использованием библиотеки ZXing, но я хочу настроить стиль (макет) сканера штрих-кодов

Я использую ZXingScannerView, который автоматически генерирует макет, и я хочу дать емуграницы и изменить свою позицию.

  ZXingScannerView scannerView;

  @Override
  protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        scannerView = new ZXingScannerView(this);         
        setContentView(scannerView);
  }
  ...

1 Ответ

0 голосов
/ 04 февраля 2019

Посмотрите на этот проект в github JourneyApps .

В примере кода есть метод scanBarcodeCustomLayout(View view).

    public void scanBarcodeCustomLayout(View view) {
        IntentIntegrator integrator = new IntentIntegrator(this);
        integrator.setCaptureActivity(AnyOrientationCaptureActivity.class);
        integrator.setDesiredBarcodeFormats(IntentIntegrator.ONE_D_CODE_TYPES);
        integrator.setPrompt("Scan something");
        integrator.setOrientationLocked(false);
        integrator.setBeepEnabled(false);
        integrator.initiateScan();
    }

Для вас есть очень важная строка

integrator.setCaptureActivity(AnyOrientationCaptureActivity.class);

То, что AnyOrientationCaptureActivity class просто простирается от CaptureActivity и больше не имеет кода.Таким образом, это означает, что CaptureActivity имеет стиль по умолчанию для просмотра штрих-кода.

package example.zxing;

import com.journeyapps.barcodescanner.CaptureActivity;

/**
 * This Activity is exactly the same as CaptureActivity, but has a different orientation
 * setting in AndroidManifest.xml.
 */
public class AnyOrientationCaptureActivity extends CaptureActivity {

}

Теперь посмотрите на

setContentView(R.layout.zxing_capture);

Все, что вам нужно сделать, это создать свой собственный класс.Скопируйте весь код из CaptureActivity и установите custom xml layout в setContentView().

, а затем прикрепите com.journeyapps.barcodescanner.DecoratedBarcodeView для просмотра захвата штрих-кодов.

Вы можете стилизовать этомакет, как вы хотите.Например, чтобы сделать рамку, просто установите отступ в корневом макете.

Надеюсь, это вам поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...