小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

不懂記,條形碼和二維碼——day2

 昵稱15103532 2013-12-18

一般Camera調(diào)用open以及startPreview需要確保不多次調(diào)用,

如果Camera.open(); 或者camera.startPreview();連續(xù)調(diào)用了多次,將可能會發(fā)生 java.lang.RuntimeException: startPreview failed;

可以使用boolean 全局變量來記錄當(dāng)前camera的狀態(tài)。來保證這一點。

private void initCamera() {

        if (!isView) {

            camera = Camera.open(); 

        }

        if (camera != null && !isView) {

            try {

                Camera.Parameters myParameters = camera.getParameters();

                myParameters.setPictureFormat(ImageFormat.JPEG);

                camera.setParameters(myParameters);        

                camera.setPreviewDisplay(holder);                    

                camera.startPreview();

            } catch (IOException e) {

                e.printStackTrace();

            }

            isView = true; 

        }

    }

摘自:http://blog.csdn.net/davidbeckham2901/article/details/7696497


https://code.google.com/p/zxing/ 下載庫   

  android平臺所需文件為 android  code(因為要學(xué)習(xí)所以沒有打jar包直接用源碼)  androidtest  android-integration

 其中androidtest 并不是必須的只是一些例子而已 androidtest 依賴 android-integration,android。

 android 依賴code  

2 導(dǎo)入工程 android 與 androidtest  

  code目錄下的src文件夾是二維碼解析與編碼的庫,它是一個javase 工程 我在這裡降它更改為android工程,然後把這個android(可以直接把a(bǔ)ndroid- integration裏面的類文件直接拷貝到code目錄裏面合併這2個庫)設(shè)置為一個庫,添加到android與amdrpodtest工程裏面,處理一些錯誤可以運(yùn)行了。

3 androidtest  工程掃描主要代碼為

IntentIntegrator integrator = new IntentIntegrator(ZXingTestActivity.this);

//設(shè)置二維碼掃描屏幕的參數(shù)
integrator.addExtra("SCAN_WIDTH",800);
integrator.addExtra("SCAN_HEIGHT", 800);
integrator.addExtra("RESULT_DISPLAY_DURATION_MS", 3000L);
integrator.initiateScan(IntentIntegrator.PRODUCT_CODE_TYPES); //設(shè)置掃描類型 可以是條形碼 與二維碼  也可不設(shè)置掃描所有支持的類型如:

IntentIntegrator integrator = new IntentIntegrator(ZXingTestActivity.this);
integrator.initiateScan();

  生成二維碼代碼

private void encodeBarcode(CharSequence type, CharSequence data) {

IntentIntegrator integrator = new IntentIntegrator(this);
integrator.shareText(data, type);//設(shè)置數(shù)據(jù) 與 數(shù)據(jù)類型
}

注意:只要安裝了 android工程  上面的代碼在任何你寫的android工程裏面都可以調(diào)用掃描二維碼的功能

4 IntentIntegrator 類

   這個類是一個工具類  它把生成與掃描二維碼的代碼整合在了一起方便調(diào)用不需要再直接的調(diào)用庫裏面的代碼,但是它也是與庫所分離的,如上所述它需要先安裝android工程才能夠運(yùn)行,

調(diào)用過程:1如上代碼當(dāng)new一個IntentIntegrator 對象的時候,會調(diào)用initiateScan方法來初始化一些數(shù)據(jù)但是更重要的作用是在調(diào)用掃描類

               initiateScan方法裏面添加掃描的類型比如產(chǎn)品條形碼 或者二維碼  其實這些數(shù)據(jù)有無都可以 

               new 出一個intent  參數(shù)為com.google.zxing.client.android.scan    這個不是一個類 而是在android 工程裏面定義的一個interfilter而它               

指向的activity 就是android工程裏面的CaptureActivity這個是主要的掃描類,

              跳轉(zhuǎn)的時候回加入一些數(shù)據(jù)如:  intentScan.putExtra("SCAN_FORMATS", joinedByComma.toString());//掃描類型

             initiateScan方法的返回值為AlertDialog 這個主要是爲(wèi)了在沒有安裝android 工程的情況下程序會給出一個提示(2.2版本目前支持的工程有

                       private static final String BS_PACKAGE = "com.google.zxing.client.android" ;
                   private static final String BSPLUS_PACKAGE = "com.srowen.bs.android";

                                                 )

              檢查包存在的方法是獲取所以包名看是否有這2個包 findTargetAppPackage(Intent intent) 實現(xiàn)這個功能

             2 在成功掃描之後 CaptureActivity 退出 返回到 androidtest主activity 的onActivityResult方法裏面調(diào)用 IntentIntegrator 的parseActivityResult方法來接收掃描出來的數(shù)據(jù)顯示在屏幕上面。

        這就是在不理會庫的情況下調(diào)用過程

CaptureActivity類處理外來數(shù)據(jù)(因為它自己本身也可以運(yùn)行)這裡先不說它本身是如何處理運(yùn)行的只說處理外來的數(shù)據(jù)

              主要在onResume裏面處理  包括camera的調(diào)用同樣也是在這里

                 1 檢查action 是否是com.google.zxing.client.android.scan

                 2 獲取類型 DecodeFormatManager.parseDecodeFormats(intent);  例如UPC_A UPC_E CODE_93 等在DecodeFormatManager有定義。

                    此方法是多態(tài)的可以接收 intent uri  與Iterable  

                      String scanFormatsString = intent.getStringExtra(Intents.Scan.FORMATS);  獲取類型 

                    FORMATS 的值為SCAN_FORMATS 即剛才在IntentIntegrator  跳轉(zhuǎn)過來的時候 添加的掃描類型 其中還                 有一些細(xì)節(jié)性的處理在這裡就不說了(因為我還沒看呢).

              下步掃描處理明天開始學(xué)習(xí)。

至此 google zxing 條碼掃描已經(jīng)完成了,使用起來很簡單但是得安裝它所需要的庫,所以明天開始學(xué)習(xí)android 工程,若有那裡不對之處還請高手指出,歡迎正在學(xué)習(xí)這個的與已經(jīng)學(xué)習(xí)過的朋友來此討論與指點,不勝感激。

摘自:http://www.cnblogs.com/zhanghaocxj/p/3258099.html

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多