国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 系統(tǒng) > Android > 正文

Android二維碼開(kāi)發(fā)學(xué)習(xí)教程

2019-12-12 06:02:35
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

二維碼其實(shí)有很多種,但是我們常見(jiàn)的微信使用的是一種叫做QRCode的二維碼,像下面這樣的,可以放心的掃,這只是我的博客主頁(yè)鏈接啦:

 

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

 3. 二維碼的字符內(nèi)容是有限制的,并且內(nèi)容越多,二維碼越復(fù)雜。如果想你的二維碼容易被一些像素低的手機(jī)掃描出來(lái),就盡量不要太復(fù)雜。 
注意:二維碼生成可以通過(guò)各種網(wǎng)站來(lái)完成,只需要輸入內(nèi)容即可得到。
 既然二維碼生成了,我們就要知道怎么用手機(jī)來(lái)掃描然后得到二維碼代表的內(nèi)容,這里介紹一個(gè)最簡(jiǎn)單的第三方庫(kù):barcodescaner 

我們通過(guò)這個(gè)庫(kù),可以直接編寫(xiě)一個(gè)用于拍攝并識(shí)別的活動(dòng),然后通過(guò)活動(dòng)返回的結(jié)果進(jìn)行結(jié)果處理,具體的步驟如下:

 1. 添加依賴
 compile 'me.dm7.barcodescanner:zxing:1.8.4' 

 2. 創(chuàng)建一個(gè)活動(dò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(); // 打開(kāi)攝像頭 } @Override protected void onPause() {  super.onPause();  mZXingScannerView.stopCamera(); // 活動(dòng)失去焦點(diǎn)的時(shí)候關(guān)閉攝像頭 } @Override public void handleResult(Result result) { // 實(shí)現(xiàn)回調(diào)接口,將數(shù)據(jù)回傳并結(jié)束活動(dòng)  Intent data = new Intent();  data.putExtra("text", result.getText());  setResult(RESULT_OK, data);  finish(); }} 

3. 在主活動(dòng)中打開(kāi)這個(gè)活動(dòng),并處理傳回的數(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")); // 顯示識(shí)別到的文字   mWebView.loadUrl(data.getStringExtra("text")); // 將識(shí)別的內(nèi)容當(dāng)作網(wǎng)址加載到WebView  } }} 

4. 添加攝像頭和訪問(wèn)網(wǎng)絡(luò)權(quán)限: 
<uses-permission android:name="android.permission.CAMERA"/>
<uses-permission android:name="android.permission.INTERNET"/> 
使用這個(gè)工具類的方法非常簡(jiǎn)單,只需要將一個(gè)ZXingScannerView作為整個(gè)活動(dòng)的布局,然后設(shè)置解析成功的回調(diào)接口,實(shí)現(xiàn)回調(diào)的方法將數(shù)據(jù)回傳個(gè)主活動(dòng)即可。
當(dāng)然,如果是需要一個(gè)自定義掃描界面的效果,就沒(méi)有這么簡(jiǎn)單了。

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持武林網(wǎng)。

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 扬州市| 安化县| 宝鸡市| 长丰县| 英吉沙县| 万载县| 徐汇区| 菏泽市| 溧水县| 延长县| 金山区| 温泉县| 汕头市| 广昌县| 襄樊市| 西藏| 龙泉市| 高要市| 丽江市| 湾仔区| 怀柔区| 新巴尔虎右旗| 河间市| 大石桥市| 汾阳市| 丹凤县| 布尔津县| 南投县| 邓州市| 六安市| 枣强县| 普安县| 开原市| 夏邑县| 陇西县| 洞头县| 辉县市| 蒙阴县| 龙泉市| 奎屯市| 新泰市|