㈠ 如何用Zxing解析pdf417-android開發問答
1.如何將zxing的Android源碼導入工程。
在導入zxing的android源碼之前,先去官方下載zxing的源碼:http://code.google.com/p/zxing/downloads/list。
我這里下載的是1.6版本的,我試驗了幾個版本,發現2.0以後的版本實際用起來沒有1.6和1.7版本的好用,最後選擇了1.6版本。
在導入之前先要對core文件下的源碼進行編譯,得到核心包core.jar。
編譯方法請參照:http://blog.163.com/yimigao@126/blog/static/671560502011611111116747/
然後就可以導入android平台下的例子了,導入方法如下:
1)打開Eclipse,新建android項目:(注意不要直接把android文件夾拷到workspace下導入,那樣會無法導入)
2)導入核心包core.jar。
3)修改strings.xml文件。在導入core.jar之後工程還是會有錯誤:
出現這種錯誤可能是由於字元錯誤導致的,只需要把所有的%s 和%f改成 %1s和f 即可。
修改完之後重新清理項目,此時已經沒有錯誤了:
2.代碼簡化
上面代碼中,很多功能我們在自己的項目中都用不到,因此需要對其進行簡化,至於如何簡化這里就不贅述了,網上有很多教程。下面只給出簡化後的結果:
如果只進行二維碼識別和二維碼生成的話,只需要上麵包中的文件。其中CaptureActivity.java是拍照取景的類,camera包下面的類主要與照相機相關的類,decoding和encoding是解碼和編碼相關的類,view是取景框相關的類。
3.將簡化的zxing代碼嵌入自己的工程。
在自己的工程中嵌入簡化的zxing代碼即可實現二維碼生成和識別功能。
嵌入方法:
1)將上述簡化的代碼拖到自己工程目錄下;
2)將values文件夾和raw文件夾復制自己工程目錄下;
3)建立CaptureActivity.java的布局文件capture.xml。
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<SurfaceView
android:id="@+id/preview_view"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center" />
<com.zxing.view.ViewfinderView
android:id="@+id/viewfinder_view"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_gravity="center"
android:orientation="vertical" >
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerInParent="true"
android:gravity="center"
android:paddingBottom="10dp"
android:paddingTop="10dp"
android:text="Scan Barcode"
android:textColor="@android:color/white"
android:textSize="18sp"
android:textStyle="bold" />
<Button
android:id="@+id/btn_cancel_scan"
android:layout_width="230dp"
android:layout_height="40dp"
android:layout_alignParentBottom="true"
android:layout_centerInParent="true"
android:layout_marginBottom="75dp"
android:text="Cancel"
android:textSize="15sp"
android:textStyle="bold" />
</RelativeLayout>
</FrameLayout>
3)導入core.jar包
4)修改AndrodMainfest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.qrcode"
android:versionCode="1"
android:versionName="1.0">
<uses-sdk android:minSdkVersion="7" />
<uses-permission android:name="android.permission.VIBRATE" /> <!-- 震動許可權 -->
<uses-permission android:name="android.permission.CAMERA" />
<uses-feature android:name="android.hardware.camera" /> <!-- 使用照相機許可權 -->
<uses-feature android:name="android.hardware.camera.autofocus" /> <!-- 自動聚焦許可權 -->
<application android:icon="@drawable/icon" android:label="@string/app_name">
<activity android:name=".MainActivity"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<!-- 隱藏鍵盤 --><!-- 全屏 -->
<activity
android:configChanges="orientation|keyboardHidden"
android:name="com.zxing.activity.CaptureActivity"
android:screenOrientation="portrait"
android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
android:windowSoftInputMode="stateAlwaysHidden" >
</activity>
</application>
</manifest>
㈡ 初次在弄Android開發的論文,求大神指導Zxing文件夾里的這些文件怎麼用
assets 是靜態文件目錄 res 只資源文件目錄 src 是源碼目錄 androidmanifest 是 app 配置文件,其他的都是 開發工具生成的 都不用管, 歡迎採納
㈢ 在android中使用googlezxing實現二維碼
先打開本地下載,復制文件,拷貝到他們的項目中即可。
首先我們打開google的zxing的地址,googledezxing地址(本地下載),打開之後我們會看到界面,將這個文件下載我們本地,下載好之後我們需要復制android文件下的幾個類,根據這些類名稱在android文件下找到這些類,拷貝到他們的項目中,拷貝之後會有報錯,我們需要將android文件下的res中的文件也拷貝到我們的項目中。完成之後我們還要依賴zxing的核心類庫,當我們的項目不報錯的時候,就可以先實現掃描二維碼和生成二維碼。
㈣ Android 小黃車掃描二維碼用的啥框架
這里簡單介紹一下ZXing庫。ZXing是一個開放源碼的,用Java實現的多種格式的1D/2D條碼圖像處理庫,它包含了聯繫到其他語言的埠。Zxing可以實現使用手機的內置的攝像頭完成條形碼的掃描及解碼。該項目可實現的條形碼編碼和解碼。目前支持以下格式:UPC-A,UPC-E、EAN-8,EAN-13、39碼、93碼。ZXing是個很經典的條碼/二維碼識別的開源類庫,以前在功能機上,就有開發者使用J2ME運用ZXing了,不過要支持JSR-234規范(自動對焦)的手機才能發揮其威力。
下面是ZXing的demo運行,我這里創建了一個二維碼,內容是我博客的網址,大夥可以用微信的掃一掃功能,試一下。就可以直接打開我博客。
㈤ android怎麼zxing 二維碼掃描
第一部分:Zxing的集成
步驟一:下載所需要的Zxing精簡版,在Github上搜索Zxing,看到這條記錄
進入並下載其jar包:
步驟二:復制到項目中,解壓下載的包到ZXingProj/src/com/dtr目錄下,復制這個zxing文件夾到項目中,這個時候你會看到有幾個紅線錯誤
接著一個個來修改這些紅色錯誤,主要錯誤包括:導入的R包不是本項目的,存在R.raw和R.id和R.layout的資源找不到。首先把該放進去的資源先放進去,復制libs中的zxing.jar包到項目中,記得右鍵AddAsLibrary
復制下載的res的layout文件、res的values的ids文件、raw文件、res的drawable-xhdpi文件到項目的對應位置
打開ResultActivity文件:
[java] view plain
public class ResultActivity extends Activity {
private ImageView mResultImage;
private TextView mResultText;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_result);
Bundle extras = getIntent().getExtras();
mResultImage = (ImageView) findViewById(R.id.result_image);
mResultText = (TextView) findViewById(R.id.result_text);
if (null != extras) {
int width = extras.getInt("width");
int height = extras.getInt("height");
LayoutParams lps = new LayoutParams(width, height);
lps.topMargin = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 30, getResources().getDisplayMetrics());
lps.leftMargin = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 20, getResources().getDisplayMetrics());
lps.rightMargin = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 20, getResources().getDisplayMetrics());
mResultImage.setLayoutParams(lps);
String result = extras.getString("result");
mResultText.setText(result);
Bitmap barcode = null;
byte[] compressedBitmap = extras.getByteArray(DecodeThread.BARCODE_BITMAP);
if (compressedBitmap != null) {
barcode = BitmapFactory.decodeByteArray(compressedBitmap, 0, compressedBitmap.length, null);
// Mutable :
barcode = barcode.(Bitmap.Config.RGB_565, true);
}
mResultImage.setImageBitmap(barcode);
}
}
}
㈥ 如何在android studio 中引入zxing
方法一:Android studio引入了grandle,導入第三方庫需要在裡面配置。將zxing解壓後把Httpzoid目錄到你項目的目錄下,添加後android studio的項目下會自動出現這個目錄,然後進行grandle配置,具體可以去網路搜一下很多。
方法二:導入zxing庫的jar包:在libs文件夾和添加的*.jar文件下滑鼠單擊菜單 add as library
打開App目錄下有個build.gradle文件應該項目結構文件,上述的動作只是為了在在文件下添加。其實Android studio本身自帶
的庫挺多,選擇項目單擊Open Mole Settings,在Dependencies中,點擊右邊綠色加號,搜索zxing選擇添加文件
dependencies {
compile files('libs/android-support-v13.jar')
compile files('libs/zxing.jar')}
方法三,猥瑣點,把工程復制黏貼到自己的項目工程,把工程包名改,哈哈
㈦ android 解析條形碼 ZXing庫詳細介紹
Zxing是谷歌的開源項目,你要研究它,先要找到他的入口,你去androidmanifest,xml中看看那個是程序的主啟動類,然後根據主入口,一步一步看它的執行過程,最好打打DEBUG斷點,那你可以更好的知道代碼執行到哪裡了!! 有攝像頭是肯定的,沒有如何掃描呢??目前好像不支持本地的條形碼解析吧,掃描功能不是攝像頭帶的,是用代碼去操控攝像頭的!!建議你去google找到這個項目主頁,下載那個ZxingTEST,這個比完整版的代碼要簡單,你可以看看
㈧ android開發 如何實現掃描本地二維碼圖片
開源的二維碼掃描庫主要有zxing和zbar,zbar在iPos平台上應用比較成熟,而在Android平台上主流還是用zxing庫,因此這里主要講述如何利用zxing進行二維碼開發。
如何將zxing的Android源碼導入工程。
在導入zxing的android源碼之前,先去官方下載zxing的源碼http://code.google.com/p/zxing/downloads/list。
這里以1.6版本為例,zxing 1.6源碼結構如下:
<?xmlversion="1.0"encoding="utf-8"?>
<manifestxmlns:android="http://schemas.android.com/apk/res/android"
package="com.qrcode"
android:versionCode="1"
android:versionName="1.0">
<uses-sdkandroid:minSdkVersion="7"/>
<uses-permissionandroid:name="android.permission.VIBRATE"/><!--震動許可權-->
<uses-permissionandroid:name="android.permission.CAMERA"/>
<uses-featureandroid:name="android.hardware.camera"/><!--使用照相機許可權-->
<uses-featureandroid:name="android.hardware.camera.autofocus"/><!--自動聚焦許可權-->
<applicationandroid:icon="@drawable/icon"android:label="@string/app_name">
<activityandroid:name=".MainActivity"
android:label="@string/app_name">
<intent-filter>
<actionandroid:name="android.intent.action.MAIN"/>
<categoryandroid:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
<!--隱藏鍵盤--><!--全屏-->
<activity
android:configChanges="orientation|keyboardHidden"
android:name="com.zxing.activity.CaptureActivity"
android:screenOrientation="portrait"
android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
android:windowSoftInputMode="stateAlwaysHidden">
</activity>
</application>
</manifest>
這種情況大致就可以實現二維碼掃描了,想細化的話,還可以多看看安卓二維碼掃描開發相關的教程
㈨ android zxing需要哪些許可權
在導入zxing的android源碼之前,先去官方下載zxing的源碼:http://code.google.com/p/zxing/downloads/list。
我這里下載的是1.6版本的,我試驗了幾個版本,發現2.0以後的版本實際用起來沒有1.6和1.7版本的好用,最後選擇了1.6版本。
zxing 1.6源碼結構如下:
㈩ Android ZXing 二維碼,編碼和解碼的演算法是什麼演算法,還是用bitmap生成二維碼圖片那個演算法是什麼,謝謝
二維碼分兩類:行排式二維條碼和矩陣式二維碼,已矩陣式二維碼中QRcode為例。
QRcode是日本Denso公司開發的,目前網上有其二維碼信息組件QRcode.dll,該組件可對輸入的字元串進行QR編碼
調用介面定義:
STDMETHOD
IMPCQREncoder:Encode(BSTR bstrEncodeData,
BYTE byErrorCorrectionLevel,
BOOL bISOI2EC,
BSTR *pbstrResultStream)
輸入參數說明:
BSTR bstrEncodeData: 待編碼的字元串,注意一個中文字元對應兩個位元組,對應漢字內碼
BYTE byErrorCorrectionLevel:編碼的糾錯級別選擇,0表示糾錯級別L(7%),1表示糾錯級別M(15%),2表示糾錯級別Q(25%),3表示糾錯級別H(30%)
BOOL bISOIEC:採用的編碼標准,取值為TRUE表示採用國際標准(ISO/IEC18004),FALSE表示采國家標准(GB/TGB/T18284-2000)
輸出參數說明:
BSTR *pbstrResultStream:輸出字元串,字元串由三部分組成,(注意,每個字元為一個位元組)
第一部分三位元組,為編碼後QR符號的寬度,
第二部分三位元組,為編碼後QR符號的高度,
第三部分為編碼後的QR符號,長度為QR符號寬度與QR符號高度的乘積。
舉個例子,對字元串「01234567」
編碼後得到返回值為:
「011011111111101001100100010」
字元串「01234567」經二維碼信息編碼後應理解為:
21個單位寬(前三個字元『021』)、21個單位高的正方形單位矩陣,
可以根據矩陣中的每一個元素值(0或1)來生成二維碼圖片對應位置上的像素顏色,假設定0值為白色,1值為黑色,每個單位(即021後面的字元)表示1個像素,那麼當前二維碼圖片應為21像素寬、21像素高的黑白相間的圖片。我想用編碼後的信息,以這種定義生成圖片的演算法應該還是容易實現的。另外,QR編碼具體演算法,建議還是看看QR編碼規範文檔,如果你需要,我可以傳給你。