乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      不懂記,條形碼和二維碼——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)。來保證這一點(diǎn)。

      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(因?yàn)橐獙W(xué)習(xí)所以沒有打jar包直接用源碼)  androidtest  android-integration

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

       android 依賴code  

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

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

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

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

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

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

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

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

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

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

                                                       )

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

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

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

      CaptureActivity類處理外來數(shù)據(jù)(因?yàn)樗约罕旧硪部梢赃\(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)過來的時(shí)候 添加的掃描類型 其中還                 有一些細(xì)節(jié)性的處理在這裡就不說了(因?yàn)槲疫€沒看呢).

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

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

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

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

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多