Android二維碼開發(fā)學習教程
二維碼其實有很多種,但是我們常見的微信使用的是一種叫做QRCode的二維碼,像下面這樣的,可以放心的掃,這只是我的博客主頁鏈接啦:
關(guān)于QR碼編碼的二維碼,我們要知道幾個特點:
1. 掃描時可以從各個角度去掃,也就是旋轉(zhuǎn)多少度都沒關(guān)系,不信嗎?下次去肯德基買單試試咯。
2. 二維碼有容錯率,容錯率越大,生成的二維碼也就越復(fù)雜,但是越不容易出錯,并且,當二維碼被遮擋的時候也越容易掃描出來。這里我上傳的二維碼容錯為30%,可以從左上角開始掃描,大概掃描到下圖范圍的時候就可以識別出來了:
3. 二維碼的字符內(nèi)容是有限制的,并且內(nèi)容越多,二維碼越復(fù)雜。如果想你的二維碼容易被一些像素低的手機掃描出來,就盡量不要太復(fù)雜。
注意:二維碼生成可以通過各種網(wǎng)站來完成,只需要輸入內(nèi)容即可得到。
既然二維碼生成了,我們就要知道怎么用手機來掃描然后得到二維碼代表的內(nèi)容,這里介紹一個最簡單的第三方庫:barcodescaner
我們通過這個庫,可以直接編寫一個用于拍攝并識別的活動,然后通過活動返回的結(jié)果進行結(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(); // 活動失去焦點的時候關(guān)閉攝像頭 } @Override public void handleResult(Result result) { // 實現(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)容當作網(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)接口,實現(xiàn)回調(diào)的方法將數(shù)據(jù)回傳個主活動即可。
當然,如果是需要一個自定義掃描界面的效果,就沒有這么簡單了。
以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Android實現(xiàn)常見的驗證碼輸入框?qū)嵗a
我們在開發(fā)APP的時候經(jīng)常要遇到輸入框,下面這篇文章主要給大家介紹了關(guān)于利用Android如何實現(xiàn)常見的驗證碼輸入框的相關(guān)資料,文中通過示例代碼介紹的非常詳細,需要的朋友們可以參考借鑒,下面隨著小編來一起學習學習下吧。2017-09-09Android Studio3.5開發(fā)工具(安卓開發(fā)工具)安裝步驟詳解
這篇文章主要為大家詳細介紹了Android Studio3.5開發(fā)工具安裝、安卓開發(fā)工具的安裝步驟,具有一定的參考價值,感興趣的小伙伴們可以參考一下2019-09-09Android camera實時預(yù)覽 實時處理,人臉識別示例
本篇文章主要介紹了Android camera實時預(yù)覽 實時處理,面部認證示例,具有一定的參考價值,有興趣的可以了解一下。2017-01-01