Android 自定义加载条和Zxing扫描二维码

在注册表里面注册权限




在build.gradle导入依赖
compile 'com.journeyapps:zxing-android-embedded:2.3.0@aar'
compile 'com.journeyapps:zxing-android-legacy:2.3.0@aar'
compile 'com.journeyapps:zxing-android-integration:2.3.0@aar'
compile 'com.google.zxing:core:3.2.0'

主页面布局:



     
     
     
     
在主页面内进行逻辑处理,点击Button进行加载进度条,跳转到扫描二维码页面,点击右上角的用户图标,将跳转到第二页面。
package com.example.zhoukao1_1104;

import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.support.v7.app.ActionBar;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;

import com.google.zxing.integration.android.IntentIntegrator;
import com.google.zxing.integration.android.IntentResult;
import com.title.My_Progress;

public class MainActivity extends AppCompatActivity implements View.OnClickListener{
    private static final int FLAG = 0x11;
    private TextView left_btn;
    private TextView right_btn;
    private Button progress_btn;
    private Handler ler = new Handler() {
        @Override
        public void handleMessage(Message msg) {
            super.handleMessage(msg);
              if(msg.what == FLAG) {
                  int progress = pv.getProgress();
                  progress += 10;
                  if(progress >pv.getMax()) {
                      IntentIntegrator integrator=new IntentIntegrator(MainActivity.this);
                      integrator.initiateScan();
//                      IntentIntegrator intentIntegrator = new IntentIntegrator(MainActivity.this);
//                      intentIntegrator
//                              .setDesiredBarcodeFormats(IntentIntegrator.ALL_CODE_TYPES)
//                              .setPrompt("将二维码/条码放入框内,即可自动扫描")//写那句提示的话
//                              .setOrientationLocked(false)//扫描方向固定
////                              .setCaptureActivity(CustomScanAct.class) // 设置自定义的activity是CustomActivity
//                              .initiateScan(); // 初始化扫描
                  }
                  pv.setProgress(progress);
                  ler.sendEmptyMessageDelayed(FLAG, 1000);
              }
        }
    };
    private My_Progress pv;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        ActionBar bar = getSupportActionBar();
        if(bar != null) {
            bar.hide();
        }
        initView();
        setOnClick();
    }
    private void setOnClick() {
        left_btn.setOnClickListener(this);
        right_btn.setOnClickListener(this);
        progress_btn.setOnClickListener(this);
    }
    private void initView() {
        left_btn = (TextView) findViewById(R.id.left_btn);
        right_btn = (TextView) findViewById(R.id.right_btn);
        progress_btn = (Button) findViewById(R.id.my_btn);
        pv = (My_Progress) findViewById(R.id.my_pro);
    }
    @Override
    public void onClick(View view) {
        switch (view.getId()) {
            case R.id.left_btn:
                Toast.makeText(this,"已经是首页了",Toast.LENGTH_SHORT).show();
                break;
            case R.id.right_btn:
                Intent intent = new Intent(MainActivity.this,Main2.class);
                startActivity(intent);
                break;
            case R.id.my_btn:
                ler.sendEmptyMessageDelayed(FLAG,1000);
        }
    }

    @Override
    protected void onStop() {
        super.onStop();
       ler.removeMessages(FLAG);
    }
    //获取扫描的结果
//    @Override
//    public void onActivityResult(int requestCode, int resultCode, Intent data) {
//        IntentResult intentResult = IntentIntegrator.parseActivityResult(requestCode, resultCode, data);
//        if (intentResult != null) {
//            if (intentResult.getContents() == null) {
//
//
//            } else {
//                // ScanResult 为获取到的字符串
//                String ScanResult = intentResult.getContents();
//                Toast.makeText(this,ScanResult.toString(),Toast.LENGTH_SHORT).show();
////                tvResult.setText(ScanResult);
//            }
//        } else {
//            super.onActivityResult(requestCode, resultCode, data);
//        }
//    }
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        IntentResult scanResult =IntentIntegrator.parseActivityResult(requestCode,resultCode,data);
        if (scanResult !=null){
            String result=scanResult.getContents();
            Toast.makeText(this,result,Toast.LENGTH_LONG).show();
        }
    }
}
第二个页面的布局,是一个自定义一个Viewgroup,进行了一个简单的流式布局
package com.example.zhoukao1_1104;

import android.content.Intent;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;

/**
 * Created by ZhangTAO on 2017/11/4.
 */

public class Main2 extends AppCompatActivity implements View.OnClickListener{

    private Button btn1;
    private Button btn2;
    private Button btn3;
    private Button btn4;
    private Button btn5;
    private Button btn6;
    private Button btn7;
    private Button btn8;
    private Button btn9;
    private TextView left_btn;

    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main2_activity);
        initView();
        setOnClick();
    }

    private void setOnClick() {
        btn1.setOnClickListener(this);
        btn2.setOnClickListener(this);
        btn3.setOnClickListener(this);
        btn4.setOnClickListener(this);
        btn5.setOnClickListener(this);
        btn6.setOnClickListener(this);
        btn7.setOnClickListener(this);
        btn8.setOnClickListener(this);
        btn9.setOnClickListener(this);
        left_btn.setOnClickListener(this);
    }

    private void initView() {
        btn1 = (Button) findViewById(R.id.txt1);
        btn2 = (Button) findViewById(R.id.txt2);
        btn3 = (Button) findViewById(R.id.txt3);
        btn4 = (Button) findViewById(R.id.txt4);
        btn5 = (Button) findViewById(R.id.txt5);
        btn6 = (Button) findViewById(R.id.txt6);
        btn7 = (Button) findViewById(R.id.txt7);
        btn8 = (Button) findViewById(R.id.txt8);
        btn9 = (Button) findViewById(R.id.txt9);
        left_btn = (TextView) findViewById(R.id.left_btn);
    }

    @Override
    public void onClick(View view) {
        switch (view.getId()) {
            case R.id.txt1:
                String btn1_txt = btn1.getText().toString().trim();
                Toast.makeText(this, btn1_txt, Toast.LENGTH_SHORT).show();
                break;
            case R.id.txt2:
                String btn2_txt = btn2.getText().toString().trim();
                Toast.makeText(this, btn2_txt, Toast.LENGTH_SHORT).show();
                break;
            case R.id.txt3:
                String btn3_txt = btn3.getText().toString().trim();
                Toast.makeText(this, btn3_txt, Toast.LENGTH_SHORT).show();
                break;
            case R.id.txt4:
                String btn4_txt = btn4.getText().toString().trim();
                Toast.makeText(this, btn4_txt, Toast.LENGTH_SHORT).show();
                break;
            case R.id.txt5:
                String btn5_txt = btn5.getText().toString().trim();
                Toast.makeText(this,btn5_txt,Toast.LENGTH_SHORT).show();
                break;
            case R.id.txt6:
                String btn6_txt = btn6.getText().toString().trim();
                Toast.makeText(this,btn6_txt,Toast.LENGTH_SHORT).show();
                break;
            case R.id.txt7:
                String btn7_txt = btn7.getText().toString().trim();
                Toast.makeText(this,btn7_txt,Toast.LENGTH_SHORT).show();
                break;
            case R.id.txt8:
                String btn8_txt = btn8.getText().toString().trim();
                Toast.makeText(this,btn8_txt,Toast.LENGTH_SHORT).show();
                break;
            case R.id.txt9:
                String btn9_txt = btn9.getText().toString().trim();
                Toast.makeText(this,btn9_txt,Toast.LENGTH_SHORT).show();
                break;
            case R.id.left_btn:
                Intent intent = new Intent(Main2.this,MainActivity.class);
                startActivity(intent);
        }
    }
}
自定义标题栏,布局


    
    
    

你可能感兴趣的:(Android 自定义加载条和Zxing扫描二维码)