实现二维码的扫描和生成
2018-03-04 22:47
232 查看
二维码现在越来越火爆,使用的越发广泛,对于二维码二维码的生成与解析,有多种途径
具体操作实现步骤看这篇博客
二维码的详细介绍
Android6.0版本以上的权限管理
危险权限管理
首先添加zxing的依赖
各种权限
在Application中执行初始化操作
提示:在清单文件中注册Application
主页面布局
主界面
生成二维码扫描传值到第二个Activity
具体操作实现步骤看这篇博客
二维码的详细介绍
Android6.0版本以上的权限管理
危险权限管理
首先添加zxing的依赖
compile 'cn.yipianfengye.android:zxing-library:2.1'
各种权限
<uses-permission android:name="android.permission.CAMERA" /> <uses-permission android:name="android.permission.FLASHLIGHT" /> <uses-feature android:name="android.hardware.camera" /> <uses-feature android:name="android.hardware.camera.autofocus" /> <uses-permission android:name="android.permission.VIBRATE" /> <uses-permission android:name="android.permission.WAKE_LOCK" /> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.INTERNET" />
在Application中执行初始化操作
public class MyApp extends Application { @Override public void onCreate() { super.onCreate(); // 初始化Zxing包 ZXingLibrary.initDisplayOpinion(this); } }
提示:在清单文件中注册Application
主页面布局
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" tools:context="com.bwie.zxing_dome.MainActivity"> <Button android:id="@+id/smbutton" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/smtext" /> <Button android:id="@+id/scbutton" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/sctext" /> <EditText android:id="@id/mtextstring" android:layout_width="match_parent" android:layout_height="wrap_content" /> <ImageView android:id="@+id/mimage" android:layout_width="match_parent" android:layout_height="wrap_content" /> </LinearLayout>
主界面
public class MainActivity extends AppCompatActivity { private View mScbut, mSmbut; public static final String TAG = "MainActivity"; private EditText mEdittext; private ImageView mImage; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mScbut = findViewById(R.id.scbutton); mSmbut = findViewById(R.id.smbutton); mEdittext = findViewById(R.id.mtextstring); mImage = findViewById(R.id.mimage); /** * Android6.0危险权限 */ if (ContextCompat.checkSelfPermission(this, Manifest.permission.CAMERA) != PackageManager.PERMISSION_GRANTED) { // 申请WRITE_EXTERNAL_STORAGE权限 ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.CAMERA}, 1); } /** * 扫描二维码 */ this.mSmbut.setOnClickListener(new View.OnClickListener() { public static final int REQUEST_COME = 5; @Override public void < 4000 span class="hljs-title">onClick(View v) { Log.d(TAG, "onClick:"); Intent intent = new Intent(MainActivity.this, CaptureActivity.class); startActivityForResult(intent, REQUEST_COME); } }); /** * 生成二维码 */ mScbut.setOnClickListener(new View.OnClickListener() { public Bitmap mBitmap; @Override public void onClick(View v) { Log.d(TAG, "onClick:"); String textContent = mEdittext.getText().toString(); if (TextUtils.isEmpty(textContent)) { Toast.makeText(MainActivity.this, "您的输入为空!", Toast.LENGTH_SHORT).show(); return; } mEdittext.setText(""); mBitmap = CodeUtils.createImage(textContent, 400, 400, BitmapFactory.decodeResource(getResources(), R.mipmap.ic_launcher)); mImage.setImageBitmap(mBitmap); } }); } protected void onActivityResult(int requestCode, int resultCode, Intent data) { if (requestCode == 5) { if (null != data) { Bundle bundle = data.getExtras(); if (bundle == null) { return; } if (bundle.getInt(CodeUtils.RESULT_TYPE) == CodeUtils.RESULT_SUCCESS) { String result = bundle.getString(CodeUtils.RESULT_STRING); Toast.makeText(this, "解析结果:" + result, Toast.LENGTH_LONG).show(); Intent intent = new Intent(MainActivity.this, WebActivity.class); intent.putExtra("path", result); startActivity(intent); } else if (bundle.getInt(CodeUtils.RESULT_TYPE) == CodeUtils.RESULT_FAILED) { Toast.makeText(MainActivity.this, "解析二维码失败", Toast.LENGTH_LONG).show(); } } } } }
生成二维码扫描传值到第二个Activity
public class WebActivity extends AppCompatActivity { private WebView mWeb; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_web); String mpath = getIntent().getStringExtra("path"); mWeb = findViewById(R.id.mwebview); if (mpath != null) { mWeb.loadUrl(mpath); } } } <WebView android:id="@+id/mwebview" android:layout_width="wrap_content" android:layout_height="wrap_content" />
相关文章推荐
- Java生成二维码实现扫描次数统计并转发到某个地址 分类: 二维码 Java 2015-01-08 10:38 408人阅读 评论(0) 收藏
- 小demo 实现二维码生成, 和扫描
- IOS几种常见的实现扫描、生成二维码的方式(一、使用ZBar SDK)
- Android集成Zxing实现二维码的扫描与生成(含动态权限)
- Java生成二维码实现扫描次数统计并转发到某个地址 分类: 二维码 Java 2015-01-08 10:38 407人阅读 评论(0) 收藏
- 二维码的扫描和生成原生实现
- HTML5实现扫描识别二维码/生成二维码
- Java生成二维码实现扫描次数统计并转发到某个地址
- Android基于Zxing实现扫描和生成二维码
- Android实现二维码的生成和扫描
- 第三方开源库:Zxing实现扫描和生成二维码
- HTML5实现扫描识别二维码/生成二维码
- Zxing实现二维码生成,扫描代码段
- HTML5实现扫描识别二维码/生成二维码
- cocos2dx-lua在ios上实现生成及扫描二维码
- 安卓实现二维码生成和扫描功能,扫描支持直接拍照扫码和相册图片扫码,还加了照明功能
- Android中的Zxing实现二维码的生成以及扫描
- 基于ZXing Android实现生成二维码图片和相机扫描二维码图片即时解码的功能
- Android 使用Zxing实现二维码的生成,扫描
- android上实现二维码生成和扫描