Посмотрите на этот проект в 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
для просмотра захвата штрих-кодов.
Вы можете стилизовать этомакет, как вы хотите.Например, чтобы сделать рамку, просто установите отступ в корневом макете.
Надеюсь, это вам поможет.