框架整理系列十四(關(guān)于二維碼和條形碼)

(大神:https://github.com/bingoogolapple/BGAQRCode-Android

引用:

ZXing

dependencies {
    compile 'com.google.zxing:core:3.2.1'
    compile 'cn.bingoogolapple:bga-qrcodecore:latestVersion@aar'
    compile 'cn.bingoogolapple:bga-zxing:latestVersion@aar'
}

ZBar

dependencies {
    compile 'cn.bingoogolapple:bga-qrcodecore:latestVersion@aar'
    compile 'cn.bingoogolapple:bga-zbar:latestVersion@aar'
}

布局文件

ZXing

<cn.bingoogolapple.qrcode.zxing.ZXingView
    android:id="@+id/zxingview"
    style="@style/MatchMatch"
    app:qrcv_animTime="1000"
    app:qrcv_borderColor="@android:color/white"
    app:qrcv_borderSize="1dp"
    app:qrcv_cornerColor="@color/colorPrimaryDark"
    app:qrcv_cornerLength="20dp"
    app:qrcv_cornerSize="3dp"
    app:qrcv_maskColor="#33FFFFFF"
    app:qrcv_rectWidth="200dp"
    app:qrcv_scanLineColor="@color/colorPrimaryDark"
    app:qrcv_scanLineSize="1dp"
    app:qrcv_topOffset="90dp" />

ZBar

<cn.bingoogolapple.qrcode.zbar.ZBarView
    android:id="@+id/zbarview"
    style="@style/MatchMatch"
    app:qrcv_animTime="1000"
    app:qrcv_borderColor="@android:color/white"
    app:qrcv_borderSize="1dp"
    app:qrcv_cornerColor="@color/colorPrimaryDark"
    app:qrcv_cornerLength="20dp"
    app:qrcv_cornerSize="3dp"
    app:qrcv_isShowDefaultScanLineDrawable="true"
    app:qrcv_maskColor="#33FFFFFF"
    app:qrcv_rectWidth="200dp"
    app:qrcv_scanLineColor="@color/colorPrimaryDark"
    app:qrcv_topOffset="90dp" />

自定義屬性說明

屬性名 說明 默認值

qrcv_topOffset 掃描框距離 toolbar 底部的距離 90dp
qrcv_cornerSize 掃描框邊角線的寬度 3dp
qrcv_cornerLength 掃描框邊角線的長度 20dp
qrcv_cornerColor 掃描框邊角線的顏色 @android:color/white
qrcv_rectWidth 掃描框的寬度 200dp
qrcv_barcodeRectHeight 條碼掃樣式描框的高度 140dp
qrcv_maskColor 除去掃描框,其余部分陰影顏色 #33FFFFFF
qrcv_scanLineSize 掃描線的寬度 1dp
qrcv_scanLineColor 掃描線的顏色「掃描線和默認的掃描線圖片的顏色」 @android:color/white
qrcv_scanLineMargin 掃描線距離上下或者左右邊框的間距 0dp
qrcv_isShowDefaultScanLineDrawable 是否顯示默認的圖片掃描線「設(shè)置該屬性后 qrcv_scanLineSize 將失效,可以通過 qrcv_scanLineColor 設(shè)置掃描線的顏色,避免讓你公司的UI單獨給你出特定顏色的掃描線圖片」 false
qrcv_customScanLineDrawable 掃描線的圖片資源「默認的掃描線圖片樣式不能滿足你的需求時使用,設(shè)置該屬性后 qrcv_isShowDefaultScanLineDrawable、qrcv_scanLineSize、qrcv_scanLineColor 將失效」 null
qrcv_borderSize 掃描邊框的寬度 1dp
qrcv_borderColor 掃描邊框的顏色 @android:color/white
qrcv_animTime 掃描線從頂部移動到底部的動畫時間「單位為毫秒」 1000
qrcv_isCenterVertical 掃描框是否垂直居中,該屬性為true時會忽略 qrcv_topOffset 屬性 false
qrcv_toolbarHeight Toolbar 的高度,通過該屬性來修正由 Toolbar 導(dǎo)致掃描框在垂直方向上的偏差 0dp
qrcv_isBarcode 是否是掃條形碼 false
qrcv_tipText 提示文案 null
qrcv_tipTextSize 提示文案字體大小 14sp
qrcv_tipTextColor 提示文案顏色 @android:color/white
qrcv_isTipTextBelowRect 提示文案是否在掃描框的底部 false
qrcv_tipTextMargin 提示文案與掃描框之間的間距 20dp
qrcv_isShowTipTextAsSingleLine 是否把提示文案作為單行顯示 false
qrcv_isShowTipBackground 是否顯示提示文案的背景 false
qrcv_tipBackgroundColor 提示文案的背景色 #22000000
qrcv_isScanLineReverse 掃描線是否來回移動 true
qrcv_isShowDefaultGridScanLineDrawable 是否顯示默認的網(wǎng)格圖片掃描線 false
qrcv_customGridScanLineDrawable 掃描線的網(wǎng)格圖片資源 nulll
qrcv_isOnlyDecodeScanBoxArea 是否只識別掃描框區(qū)域的二維碼 false
接口說明

QRCodeView

/**
 * 設(shè)置掃描二維碼的代理
 *
 * @param delegate 掃描二維碼的代理
 */
public void setDelegate(Delegate delegate)

/**
 * 顯示掃描框
 */
public void showScanRect()

/**
 * 隱藏掃描框
 */
public void hiddenScanRect()

/**
 * 打開后置攝像頭開始預(yù)覽,但是并未開始識別
 */
public void startCamera()

/**
 * 打開指定攝像頭開始預(yù)覽,但是并未開始識別
 *
 * @param cameraFacing  Camera.CameraInfo.CAMERA_FACING_BACK or Camera.CameraInfo.CAMERA_FACING_FRONT
 */
public void startCamera(int cameraFacing)

/**
 * 關(guān)閉攝像頭預(yù)覽,并且隱藏掃描框
 */
public void stopCamera()

/**
 * 延遲1.5秒后開始識別
 */
public void startSpot()

/**
 * 延遲delay毫秒后開始識別
 *
 * @param delay
 */
public void startSpotDelay(int delay)

/**
 * 停止識別
 */
public void stopSpot()

/**
 * 停止識別,并且隱藏掃描框
 */
public void stopSpotAndHiddenRect()

/**
 * 顯示掃描框,并且延遲1.5秒后開始識別
 */
public void startSpotAndShowRect()

/**
 * 打開閃光燈
 */
public void openFlashlight()

/**
 * 關(guān)閉散光燈
 */
public void closeFlashlight()
QRCodeView.Delegate 掃描二維碼的代理
/**
 * 處理掃描結(jié)果
 *
 * @param result
 */
void onScanQRCodeSuccess(String result)

/**
 * 處理打開相機出錯
 */
void onScanQRCodeOpenCameraError()

QRCodeDecoder 解析二維碼圖片。幾個重載方法都是耗時操作,請在子線程中調(diào)用。

/**
* 同步解析本地圖片二維碼。該方法是耗時操作,請在子線程中調(diào)用。
*
* @param picturePath 要解析的二維碼圖片本地路徑
* @return 返回二維碼圖片里的內(nèi)容 或 null
*/
public static String syncDecodeQRCode(String picturePath)

/**
* 同步解析bitmap二維碼。該方法是耗時操作,請在子線程中調(diào)用。
*
* @param bitmap 要解析的二維碼圖片
* @return 返回二維碼圖片里的內(nèi)容 或 null
*/
public static String syncDecodeQRCode(Bitmap bitmap)
QRCodeEncoder 創(chuàng)建二維碼圖片。幾個重載方法都是耗時操作,請在子線程中調(diào)用。
/**
* 同步創(chuàng)建黑色前景色、白色背景色的二維碼圖片。該方法是耗時操作,請在子線程中調(diào)用。
*
* @param content 要生成的二維碼圖片內(nèi)容
* @param size    圖片寬高,單位為px
*/
public static Bitmap syncEncodeQRCode(String content, int size)

/**
* 同步創(chuàng)建指定前景色、白色背景色的二維碼圖片。該方法是耗時操作,請在子線程中調(diào)用。
*
* @param content         要生成的二維碼圖片內(nèi)容
* @param size            圖片寬高,單位為px
* @param foregroundColor 二維碼圖片的前景色
*/
public static Bitmap syncEncodeQRCode(String content, int size, int foregroundColor)

/**
* 同步創(chuàng)建指定前景色、白色背景色、帶logo的二維碼圖片。該方法是耗時操作,請在子線程中調(diào)用。
*
* @param content         要生成的二維碼圖片內(nèi)容
* @param size            圖片寬高,單位為px
* @param foregroundColor 二維碼圖片的前景色
* @param logo            二維碼圖片的logo
*/
public static Bitmap syncEncodeQRCode(String content, int size, int foregroundColor, Bitmap logo)

/**
* 同步創(chuàng)建指定前景色、指定背景色、帶logo的二維碼圖片。該方法是耗時操作,請在子線程中調(diào)用。
*
* @param content         要生成的二維碼圖片內(nèi)容
* @param size            圖片寬高,單位為px
* @param foregroundColor 二維碼圖片的前景色
* @param backgroundColor 二維碼圖片的背景色
* @param logo            二維碼圖片的logo
*/
public static Bitmap syncEncodeQRCode(String content, int size, int foregroundColor, int backgroundColor, Bitmap logo)

福利


最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容