第三方Zxing____更简单易用的二维码扫描

引包

//定制化的Zxing,让Zxing更加简单易用
compile 'com.journeyapps:zxing-android-embedded:3.5.0'

基本使用

    //开始扫描
    public void scan(View view) {
        new IntentIntegrator(this)
                .setDesiredBarcodeFormats(IntentIntegrator.ALL_CODE_TYPES)//设置扫码的类型
                .setPrompt("扫描二维码抽大奖哦")//设置提示语
                .setCameraId(0)//设置前后摄像头,0为后置
                .setBeepEnabled(false)//在扫描成功后是否提示音提示
                .setBarcodeImageEnabled(true)//扫码完成之后是否生成二维码
                .initiateScan();
    } 
   //获取扫描结果
       protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        IntentResult result = IntentIntegrator.parseActivityResult(requestCode, resultCode, data);
        if(result != null) {
            if(result.getContents() == null) {
                Log.d("meee",getClass()+":\n"+"取消扫描:");
            } else {
                Log.d("meee",getClass()+":\n"+"test:"+result.getContents());
            }
        } else {
            super.onActivityResult(requestCode, resultCode, data);
        }
    }
}

竖屏扫描

在没有自定义的情况下,调用扫描是调用的默认的Activity开进行扫描,是横屏的.
我们需要竖屏的该怎么办呢
//创建activity继承CaptureActivity 
public class VerticalActivitity extends CaptureActivity {
}
//在配置文件中设置为竖屏
<activity android:name=".VerticalActivitity"  android:screenOrientation="portrait"/>
//将自定义的activity设置为扫描的activity
   public void scan(View view) {
        new IntentIntegrator(this)
                .setCaptureActivity(VerticalActivitity.class)//设置扫描打开的activity
                .setDesiredBarcodeFormats(IntentIntegrator.ALL_CODE_TYPES)//设置扫码的类型
                .setPrompt("扫描二维码抽大奖哦")//设置提示语
                .setCameraId(0)//设置前后摄像头,0为后置
                .setBeepEnabled(false)//在扫描成功后是否提示音提示
                .setBarcodeImageEnabled(true)//扫码完成之后是否生成二维码
                .initiateScan();
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
二维码扫描是一种通过摄像头扫描二维码图像并解码其包含的信息的技术。在Delphi XE10 Android移动端开发中,我们可以使用ZXing库来实现二维码扫描功能。 首先,我们需要在Delphi XE10中导入ZXing库。可以通过在Project->Options->Delphi Compiler->Linking->Library Path中添加ZXing库路径来完成导入。 接下来,我们在界面上放置一个按钮和一个TLabel用于显示扫描结果。通过按钮的OnClick事件,调用下面的代码来实现二维码扫描功能: ``` uses Androidapi.JNI.GraphicsContentViewText, Androidapi.Helpers, FMX.Graphics; procedure TForm1.Button1Click(Sender: TObject); var Intent: JIntent; begin Intent := TJIntent.Create; Intent.setAction(StringToJString('com.google.zxing.client.android.SCAN')); Intent.putExtra(StringToJString('SCAN_MODE'), StringToJString('QR_CODE_MODE')); Intent.putExtra(StringToJString('PROMPT_MESSAGE'), StringToJString('请对准二维码')); if Intent.resolveActivity(TAndroidHelper.Context.getPackageManager) <> nil then TAndroidHelper.Activity.startActivityForResult(Intent, 0) else ShowMessage('无法启动扫描功能'); end; procedure TForm1.FormActivityResult(requestCode, resultCode: Integer; Data: JIntent); begin if (requestCode = 0) and (resultCode = TJActivity.JavaClass.RESULT_OK) then begin if Assigned(Data) and Data.hasExtra(StringToJString('SCAN_RESULT')) then Label1.Text := JStringToString(Data.getStringExtra(StringToJString('SCAN_RESULT'))) else ShowMessage('扫描失败'); end; end; ``` 以上代码中,通过调用Intent的setAction方法设置扫描动作为"com.google.zxing.client.android.SCAN",并通过putExtra方法设置扫描模式为"QR_CODE_MODE",提示信息为"请对准二维码"。 在FormActivityResult方法中,根据Activity的结果判断是否成功扫描并获取扫描结果,然后将结果显示在Label1上。 通过以上代码,我们就可以在Delphi XE10 Android移动端开发中实现二维码扫描功能了。当用户点击按钮时,会启动二维码扫描界面,用户只需将二维码对准摄像头即可完成扫描,并在Label1上显示扫描结果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值