Макет сканера Zxing
Кто-нибудь знает, как я могу настроить макет сканера в библиотеке Zxing? Я хочу изменить ширину сканера, я пытаюсь в capture.xml, но не могу. Кто-нибудь знает или есть мануал?
Спасибо
3 ответа
Я объяснил, как это сделать в этом посте: https://medium.com/@marta/bar-code-scanner-in-android-with-custom-layout-zxing-2ab92d9d744c
Короче:
Добавьте необходимые зависимости AAR в Gradle ( https://github.com/embarkmobile/zxing-android-minimal)
Предоставьте собственный макет для действия захвата. См. Пример /src/main/res/layout/custom_capture_layout.xml для примеров.
Настройте сканер в своем коде Java:
IntentIntegrator интегратор = новый IntentIntegrator(это); integrator.setCaptureLayout(R.layout.custom_layout); integrator.initiateScan();
Для кнопки отмены / возврата используйте кнопку ids @id/zxing_back_back для zxing-android-minimal.
Я отвечаю на свой вопрос, размеры прямоугольника сканера могут измениться в CameraManager внутри пакета com.google.zxing.client.android.camera
Попробуйте включить макет захвата в ваш XML-файл.
<FrameLayout
android:id="@+id/frame_scan"
android:layout_width="150dip"
android:layout_height="100dip"
android:layout_gravity="center_horizontal" >
<include layout="@layout/capture" />
</FrameLayout>
И расширить действие по захвату из библиотеки Zxing. Вот и все, вы хорошо идти.
public class ScanCard extends CaptureActivity {
@Override
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
setContentView(R.layout.scan_card);
}
@Override
public void handleDecode(Result rawResult, Bitmap barcode) {
// TODO Auto-generated method stub
super.handleDecode(rawResult, barcode);
Toast.makeText(
ScanCard.this,
"Results : "
+ rawResult.getText().toString(), Toast.LENGTH_SHORT)
.show();
}
}
Удачи, пожалуйста, не стесняйтесь спрашивать, есть ли у вас какие-либо разъяснения. Это работает для меня.