日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

一分钟实现扫描二维码功能

發布時間:2023/12/10 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 一分钟实现扫描二维码功能 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

前言

二維碼掃描的功能在很多APP上都會出現,較為常用的第三方庫是zxing,zxing很強大,但是有時候我們并不需要那么復雜的功能,只需要簡單的掃描、生成以及處理掃描結果,一般都是通過重寫幾個類來實現項目需求。我開發了幾個項目都用到了掃描二維碼的功能,第一個項目,寫了個完整的功能,之后的項目都是從第一個項目里面復制代碼的,幾次之后,覺得有點繁瑣,所以就單獨封裝成一個項目,傳到jcenter上,以后再遇到掃描二維碼的功能,只需要在gradle導入,即可實現快速開發了。

下載APP體驗

導入

compile 'com.hebin:hxbrzxing:1.0.1'

使用

導入庫之后,就可以使用掃描二維碼的功能了,只需要新建一個activity,然后繼承CaptureActivity即可。

class MainActivity : CaptureActivity() {override fun onCreate(savedInstanceState: Bundle?) {super.onCreate(savedInstanceState)} }

自定義使用

如果只是簡單的繼承,那么得到的效果圖如下:

這里提供了幾個可以自定義的屬性;

1. 標題欄自定義

class MainActivity : CaptureActivity() {override fun onCreate(savedInstanceState: Bundle?) {super.onCreate(savedInstanceState)val view = LayoutInflater.from(this@MainActivity).inflate(R.layout.simple_title,null)setTitleView(view)} }

2. 背景圖片自定義

class MainActivity : CaptureActivity() {override fun onCreate(savedInstanceState: Bundle?) {super.onCreate(savedInstanceState)setBackground(R.mipmap.ic_launcher)} }

3. 提示文字自定義

class MainActivity : CaptureActivity() {override fun onCreate(savedInstanceState: Bundle?) {super.onCreate(savedInstanceState)setTipText("請掃描二維碼")} }

4. 附加功能

class MainActivity : CaptureActivity() {override fun onCreate(savedInstanceState: Bundle?) {super.onCreate(savedInstanceState)val view= LayoutInflater.from(this@MainActivity).inflate(R.layout.simple_title,null)// 打開相冊,識別圖片二維碼view.tvTitle.setOnClickListener { openPhoto() }// 打開閃光燈view.tvTitle.setOnClickListener { openLight() }setTitleView(view)}}

掃描結果處理

繼承CaptureActivity.ResultListener,并且在oncreat里面,寫上setListener(this)即可實現監聽,然后在onResult里面做邏輯處理。

class MainActivity : CaptureActivity(), CaptureActivity.ResultListener {override fun onCreate(savedInstanceState: Bundle?) {super.onCreate(savedInstanceState)setListener(this)}override fun onResult(result: String) {if (result.contains("http")) {Toast.makeText(this@MainActivity, "跳轉到網頁", Toast.LENGTH_SHORT).show()} else {Toast.makeText(this@MainActivity, "這個二維碼不是網頁", Toast.LENGTH_SHORT).show()}} }

后話

至此,只要通過簡單的幾行代碼就實現掃描二維碼的功能,而且這個掃描二維碼的功能,是支持連續掃描的,不需要退出重新進入即可再次掃描。項目源碼已經傳到github上了。

https://github.com/Hebin320/Zxing

總結

以上是生活随笔為你收集整理的一分钟实现扫描二维码功能的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。