我在Xamarin应用中实现了条形码扫描仪。为了实现扫描仪,我遵循了本教程:https://www.c-sharpcorner.com/article/xamarin-android-qr-code-reader-by-mobile-camera/
所以,我有一个SurfaceView,一个CameraSource和一个BarcodeDetector。现在,我想裁剪相机预览,说扫描仪必须在其中扫描条形码,因为我们可能从中获取多个条形码。
我认为这可以与“简单作物视图”(或类似方法)一起使用,但是我不知道如何实现它。 在这里找到的所有解决方案都无法正常工作,或者我缺少某些东西。
答案 0 :(得分:0)
您要像这样的GIF来实现吗?
如果是这样,您可以使用ZXing.Net.Mobile
来实现
https://github.com/Redth/ZXing.Net.Mobile
有我的演示 https://github.com/851265601/Scanebarcode
更新:如果您仍然想使用自爆链接之类的解决方案
https://www.c-sharpcorner.com/article/xamarin-android-qr-code-reader-by-mobile-camera/
我像下面的代码一样更改了布局。我用FramLayout
,SurfaceView
覆盖了其他{LinearLayout
或relativelayout
<FrameLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
>
<SurfaceView
android:id="@+id/cameraView"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_centerInParent="true" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
>
<RelativeLayout
android:background="#953399ff"
android:layout_width="fill_parent"
android:layout_height="0dp"
android:layout_weight="1" />
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="330dp"
android:orientation="horizontal">
<RelativeLayout
android:background="#953399ff"
android:layout_width="0dp"
android:layout_height="fill_parent"
android:layout_weight="1" />
<RelativeLayout
android:id="@+id/rlscan"
android:layout_width="220dp"
android:layout_height="fill_parent">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:src="@drawable/area_above_left" />
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true"
android:src="@drawable/area_above_right" />
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignParentLeft="true"
android:src="@drawable/area_below_left" />
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignParentRight="true"
android:src="@drawable/area_below_right" />
</RelativeLayout>
<RelativeLayout
android:background="#953399ff"
android:layout_width="0dp"
android:layout_height="fill_parent"
android:layout_weight="1" />
</LinearLayout>
<RelativeLayout
android:background="#953399ff"
android:layout_width="fill_parent"
android:layout_height="0dp"
android:layout_weight="1">
<TextView
android:layout_centerInParent="true"
android:gravity="center_horizontal"
android:id="@+id/txtResult"
android:layout_below="@+id/cameraView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Please focus Camera to QR Code"
android:textSize="10sp"
android:layout_marginTop="20dp" />
</RelativeLayout>
</LinearLayout>
</FrameLayout>