Android二維碼開發(fā)學(xué)習(xí)教程
二維碼其實(shí)有很多種,但是我們常見的微信使用的是一種叫做QRCode的二維碼,像下面這樣的,可以放心的掃,這只是我的博客主頁鏈接啦:

關(guān)于QR碼編碼的二維碼,我們要知道幾個特點(diǎn):
1. 掃描時可以從各個角度去掃,也就是旋轉(zhuǎn)多少度都沒關(guān)系,不信嗎?下次去肯德基買單試試咯。
2. 二維碼有容錯率,容錯率越大,生成的二維碼也就越復(fù)雜,但是越不容易出錯,并且,當(dāng)二維碼被遮擋的時候也越容易掃描出來。這里我上傳的二維碼容錯為30%,可以從左上角開始掃描,大概掃描到下圖范圍的時候就可以識別出來了:

3. 二維碼的字符內(nèi)容是有限制的,并且內(nèi)容越多,二維碼越復(fù)雜。如果想你的二維碼容易被一些像素低的手機(jī)掃描出來,就盡量不要太復(fù)雜。
注意:二維碼生成可以通過各種網(wǎng)站來完成,只需要輸入內(nèi)容即可得到。
既然二維碼生成了,我們就要知道怎么用手機(jī)來掃描然后得到二維碼代表的內(nèi)容,這里介紹一個最簡單的第三方庫:barcodescaner
我們通過這個庫,可以直接編寫一個用于拍攝并識別的活動,然后通過活動返回的結(jié)果進(jìn)行結(jié)果處理,具體的步驟如下:
1. 添加依賴
compile 'me.dm7.barcodescanner:zxing:1.8.4'
2. 創(chuàng)建一個活動,代碼如下所示:
public class ScannerActivity extends AppCompatActivity implements ZXingScannerView.ResultHandler {
private ZXingScannerView mZXingScannerView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mZXingScannerView = new ZXingScannerView(this); // 將ZXingScannerView作為布局
setContentView(mZXingScannerView);
}
@Override
protected void onResume() {
super.onResume();
mZXingScannerView.setResultHandler(this); // 設(shè)置處理結(jié)果回調(diào)
mZXingScannerView.startCamera(); // 打開攝像頭
}
@Override
protected void onPause() {
super.onPause();
mZXingScannerView.stopCamera(); // 活動失去焦點(diǎn)的時候關(guān)閉攝像頭
}
@Override
public void handleResult(Result result) { // 實(shí)現(xiàn)回調(diào)接口,將數(shù)據(jù)回傳并結(jié)束活動
Intent data = new Intent();
data.putExtra("text", result.getText());
setResult(RESULT_OK, data);
finish();
}
}
3. 在主活動中打開這個活動,并處理傳回的數(shù)據(jù):
public class HomeActivity extends AppCompatActivity {
private TextView mTextView;
private WebView mWebView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_home);
mTextView = (TextView) findViewById(R.id.tv);
mWebView = (WebView) findViewById(R.id.wv);
}
public void scanCode(View view){
startActivityForResult(new Intent(this, ScannerActivity.class), 1);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (resultCode == RESULT_OK){
mTextView.setText(data.getStringExtra("text")); // 顯示識別到的文字
mWebView.loadUrl(data.getStringExtra("text")); // 將識別的內(nèi)容當(dāng)作網(wǎng)址加載到WebView
}
}
}
4. 添加攝像頭和訪問網(wǎng)絡(luò)權(quán)限:
<uses-permission android:name="android.permission.CAMERA"/>
<uses-permission android:name="android.permission.INTERNET"/>
使用這個工具類的方法非常簡單,只需要將一個ZXingScannerView作為整個活動的布局,然后設(shè)置解析成功的回調(diào)接口,實(shí)現(xiàn)回調(diào)的方法將數(shù)據(jù)回傳個主活動即可。
當(dāng)然,如果是需要一個自定義掃描界面的效果,就沒有這么簡單了。
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- Android平臺生成二維碼并實(shí)現(xiàn)掃描 & 識別功能
- php生成Android客戶端掃描可登錄的二維碼
- Android仿微信二維碼和條形碼
- Android 二維碼 生成和識別二維碼 附源碼下載
- Android開發(fā)框架之自定義ZXing二維碼掃描界面并解決取景框拉伸問題
- 基于Android實(shí)現(xiàn)個性彩色好看的二維碼
- 月下載量上千次Android實(shí)現(xiàn)二維碼生成器app源碼分享
- Android編程實(shí)現(xiàn)二維碼的生成與解析
- Android上使用ZXing識別條形碼與二維碼的方法
- Android實(shí)現(xiàn)二維碼掃描和生成的簡單方法
相關(guān)文章
Android編程設(shè)計(jì)模式之迭代器模式詳解
這篇文章主要介紹了Android編程設(shè)計(jì)模式之迭代器模式,結(jié)合實(shí)例形式詳細(xì)分析了Android迭代器模式的概念、原理、應(yīng)用場景、用法及相關(guān)操作注意事項(xiàng),需要的朋友可以參考下2017-12-12
Android性能優(yōu)化之弱網(wǎng)優(yōu)化詳解
這篇文章主要為大家介紹了Android性能優(yōu)化之弱網(wǎng)優(yōu)化示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-10-10
android開發(fā)基礎(chǔ)教程—SharedPreferences讀寫
本文介紹SharedPreferences的讀與寫的實(shí)現(xiàn)思路,感興趣的朋友可以了解下2013-01-01
Android如何跳轉(zhuǎn)到應(yīng)用商店的APP詳情頁面
最近做項(xiàng)目遇到這樣的需求,要求從App內(nèi)部點(diǎn)擊按鈕或鏈接,跳轉(zhuǎn)到應(yīng)用商店的某個APP的詳情頁面,怎么實(shí)現(xiàn)此功能呢?下面小編給大家分享Android如何跳轉(zhuǎn)到應(yīng)用商店的APP詳情頁面,需要的朋友參考下2017-01-01
Android中TabLayout添加小紅點(diǎn)的示例代碼
本篇文章主要介紹了Android中TabLayout添加小紅點(diǎn)的示例代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-12-12
Android Studio使用小技巧:布局預(yù)覽時填充數(shù)據(jù)
這篇文章主要介紹了Android Studio使用小技巧:布局預(yù)覽時填充數(shù)據(jù),本文給出了代碼操作實(shí)例和效果圖例,需要的朋友可以參考下2015-05-05
Android 控制ScrollView滾動的實(shí)例詳解
這篇文章主要介紹了Android 控制ScrollView滾動的實(shí)例詳解的相關(guān)資料,希望通過本文能幫助到大家,需要的朋友可以參考下2017-10-10

