zoukankan      html  css  js  c++  java
  • Android语音交友软件源码开发,二维码扫描功能集成开发

    在语音交友软件源码开发过程中,有很多功能都需要根据市场的发展进行更新,就像扫描二维码加好友,就是当下比较流行的一种方式,那么在语音交友软件源码开发过程中,如何实现二维码扫描功能呢?接下来一起了解一下吧。

    首先配置ZXing库和Android工程
    项目本身非常大,我们只需使用精简版的库
    导入之后
    在这里插入图片描述
    在这里插入图片描述
    TestQRcode 项目作为库被其他项目使用。
    BarCodeTestActivity

    package com.ericssonlabs;
    
    import com.google.zxing.WriterException;
    import com.zxing.activity.CaptureActivity;
    import com.zxing.encoding.EncodingHandler;
    
    import android.app.Activity;
    import android.content.Intent;
    import android.graphics.Bitmap;
    import android.os.Bundle;
    import android.view.View;
    import android.view.View.OnClickListener;
    import android.widget.Button;
    import android.widget.EditText;
    import android.widget.ImageView;
    import android.widget.TextView;
    import android.widget.Toast;
    
    public class BarCodeTestActivity extends Activity {
        /** Called when the activity is first created. */
        private TextView resultTextView;
        private EditText qrStrEditText;
        private ImageView qrImgImageView;
        
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);
            
            resultTextView = (TextView) this.findViewById(R.id.tv_scan_result);
            qrStrEditText = (EditText) this.findViewById(R.id.et_qr_string);
            qrImgImageView = (ImageView) this.findViewById(R.id.iv_qr_image);
            
            Button scanBarCodeButton = (Button) this.findViewById(R.id.btn_scan_barcode);
            scanBarCodeButton.setOnClickListener(new OnClickListener() {
                
                @Override
                public void onClick(View v) {
                    //打开扫描界面扫描条形码或二维码
                    Intent openCameraIntent = new Intent(BarCodeTestActivity.this,CaptureActivity.class);
                    startActivityForResult(openCameraIntent, 0);
                }
            });
            
            Button generateQRCodeButton = (Button) this.findViewById(R.id.btn_add_qrcode);
            generateQRCodeButton.setOnClickListener(new OnClickListener() {
                
                @Override
                public void onClick(View v) {
                    try {
                        String contentString = qrStrEditText.getText().toString();
                        if (!contentString.equals("")) {
                            //根据字符串生成二维码图片并显示在界面上,第二个参数为图片的大小(350*350)
                            Bitmap qrCodeBitmap = EncodingHandler.createQRCode(contentString, 350);
                            qrImgImageView.setImageBitmap(qrCodeBitmap);
                        }else {
                            Toast.makeText(BarCodeTestActivity.this, "Text can not be empty", Toast.LENGTH_SHORT).show();
                        }
                        
                    } catch (WriterException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    }
                }
            });
        }
    
        @Override
        protected void onActivityResult(int requestCode, int resultCode, Intent data) {
            super.onActivityResult(requestCode, resultCode, data);
            //处理扫描结果(在界面上显示)
            if (resultCode == RESULT_OK) {
                Bundle bundle = data.getExtras();
                String scanResult = bundle.getString("result");
                resultTextView.setText(scanResult);
            }
        }
    }
    

    创建项目TestQRcode,来使用BarCodeTest库
    xml文件

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:id="@+id/container"
        android:orientation="vertical"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        tools:context="com.jikexueyuan.testqrcode.MainActivity"
        tools:ignore="MergeRootFrame" >
    
        <Button
            android:id="@+id/scan"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:text="开始扫描二维码" />
        <TextView 
            android:id="@+id/text"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:text="show"
            />
       <EditText 
           android:id="@+id/input"
           android:layout_width="fill_parent"
           android:layout_height="wrap_content"
           android:hint="请输入要编码的内容"
           />
       <Button 
           android:id="@+id/gen"
           android:layout_width="fill_parent"
           android:layout_height="wrap_content"
           android:text="生成二维码"
           />
       <ImageView 
           android:id="@+id/img"
           android:layout_width="wrap_content"
           android:layout_height="wrap_content"
           android:layout_gravity="center_horizontal"
           />
    
    </LinearLayout>
    

    MainActivity

    package com.jikexueyuan.testqrcode;
    
    import junit.framework.Test;
    
    import com.google.zxing.WriterException;
    import com.zxing.activity.CaptureActivity;
    import com.zxing.encoding.EncodingHandler;
    
    import android.app.Activity;
    import android.app.ActionBar;
    import android.app.Fragment;
    import android.content.Intent;
    import android.graphics.Bitmap;
    import android.os.Bundle;
    import android.view.LayoutInflater;
    import android.view.Menu;
    import android.view.MenuItem;
    import android.view.View;
    import android.view.ViewGroup;
    import android.widget.Button;
    import android.widget.EditText;
    import android.widget.ImageView;
    import android.widget.TextView;
    import android.widget.Toast;
    import android.os.Build;
    
    public class MainActivity extends Activity {
    
        private Button scanButton;
        private TextView text;
        private EditText input;
        private Button genButton;
        private ImageView img;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
    
            scanButton = (Button) findViewById(R.id.scan);
            text = (TextView) findViewById(R.id.text);
            scanButton.setOnClickListener(new View.OnClickListener() {
    
                @Override
                public void onClick(View arg0) {
                    Toast.makeText(MainActivity.this, "你写可以扫描条形码或者二维码",
                            Toast.LENGTH_SHORT).show();
                    Intent startScan = new Intent(MainActivity.this,
                            CaptureActivity.class);
                    // startActivity(startScan);
                    startActivityForResult(startScan, 0);
                }
            });
    
            input = (EditText) findViewById(R.id.input);
            genButton = (Button) findViewById(R.id.gen);
            img = (ImageView) findViewById(R.id.img);
            genButton.setOnClickListener(new View.OnClickListener() {
    
                @Override
                public void onClick(View arg0) {
                    String in = input.getText().toString();
                    if (in.equals("")) {
                        Toast.makeText(MainActivity.this, "请输入文本",
                                Toast.LENGTH_SHORT).show();
                    } else {
                        try {
    
                            Bitmap qrcode = EncodingHandler.createQRCode(in, 400);
                            img.setImageBitmap(qrcode);
                        } catch (WriterException e) {
                            e.printStackTrace();
                        }
                    }
    
                }
            });
        }
    
        @Override
        protected void onActivityResult(int requestCode, int resultCode, Intent data) {
            super.onActivityResult(requestCode, resultCode, data);
            if (resultCode == RESULT_OK) {
                String result = data.getExtras().getString("result");
                text.setText(result);
            }
        }
    }
    

    注册CaptureActivity.java

    <activity
                android:configChanges="orientation|keyboardHidden"
                android:name="com.zxing.activity.CaptureActivity"
                android:screenOrientation="portrait"
                android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
                android:windowSoftInputMode="stateAlwaysHidden" >
    </activity>
    

    另外在语音交友软件源码开发此功能时,还要添加两个权限,一个是振动,一个是照相机

    <uses-permission android:name="android.permission.CAMERA"/>
    <uses-permission android:name="android.permission.VIBRATE"/>
    

    以上就是“Android语音交友软件源码开发,二维码扫描功能集成开发”的全部内容了,希望对大家有帮助。

    本文转载自网络,转载仅为分享干货知识,如有侵权欢迎联系云豹科技进行删除处理

    原文链接:https://www.jianshu.com/p/c438046bc23e

  • 相关阅读:
    ES6(严格模式,let&const,箭头函数,解构赋值,字符串扩展方法,Symbol,Set和Map,生成器函数)
    动画实现-微信语音小喇叭样式
    JS与React分别实现倒计时(天时分秒)
    MacOS下如何设置hosts?
    原生JS实现‘点击元素切换背景及字体等’
    mysql数据库设计规范
    如何对 ElasticSearch 集群进行压力测试
    设计实现SAM--无服务器应用模型
    韩立刚计算机网络笔记-第11章 因特网上的音频视频-无线网络
    韩立刚计算机网络笔记-第10章 网络安全
  • 原文地址:https://www.cnblogs.com/yunbao/p/14972726.html
Copyright © 2011-2022 走看看