zoukankan      html  css  js  c++  java
  • 使用安卓实现一个二维码扫描功能(基于Android Studio)

      二维码扫描使用很广泛,在这里记录二维码扫描的功能,需要导入第三方的类库。

    步骤一:在项目中导入第三方的类库,导入方法:往Android Studio中导入第三方类库文件这篇博客中有详细记录

    步骤二:定义一个xml界面布局:一个按钮用于启动二维码扫描功能,一个TextView用于显示从二维码中获得的数据

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical">
    
    
    
        <Button
            android:id="@+id/btn"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="二维码扫描"
            />
    
    
        <TextView
            android:id="@+id/te"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="123"
            />
    
    
    </LinearLayout>

    步骤三: 在MainActivity.java中调用第三方中的类库里的类

    public class MainActivity extends AppCompatActivity {
        Button btn;
        TextView te;
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            btn = (Button) findViewById(R.id.btn);
            te = (TextView) findViewById(R.id.te);
    
            btn.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    if (ContextCompat.checkSelfPermission(MainActivity.this, Manifest.permission.CAMERA)
                            != PackageManager.PERMISSION_GRANTED) {
                        //申请WRITE_EXTERNAL_STORAGE权限
                        ActivityCompat.requestPermissions(MainActivity.this, new String[]{Manifest.permission.CAMERA},
                                1);}//这一块红色的是开启手机里的相机权限,安卓6.0以后的系统需要,否则会报错
                    Intent intent = new Intent(MainActivity.this, CaptureActivity.class);//黄色是第三方类库里面的类
                    startActivityForResult(intent,0);
                }
            });
        }
    
    //    这个方法是用来获取从另一个界面传回的值的,有不明白这个方法的作用和Intent类的使用的可以看另外一篇博客安卓的组件载体Intent
        @Override
        protected void onActivityResult(int requestCode, int resultCode, Intent data) {
            super.onActivityResult(requestCode, resultCode, data);
            if(resultCode==RESULT_OK){
                String s = data.getStringExtra("result");//这个绿色的result是在第三方类库里面定义的key
                te.setText(s);
            }
        }
    }

    由于所有打开相机的权限和其他操作都放在第三方类库里面了,所以这里只要调用这个第三方类库里的类就好了

  • 相关阅读:
    并查集(Java实现)
    Flask入门HelloWorld
    归并排序及优化(Java实现)
    用IDEA生成javadoc文档
    windows下安装Virtualenvwrapper
    模板方法模式Template Method(Java实现)
    部署Flask项目到腾讯云服务器CentOS7
    冒泡排序及优化(Java实现)
    迭代器模式Iterator(Java实现)
    堆排序(Java数组实现)
  • 原文地址:https://www.cnblogs.com/lyd447113735/p/8143136.html
Copyright © 2011-2022 走看看