首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

Android ZXing 掃碼開發:直接調用 CaptureActivity 避免手動處理 YUV 參數

     編輯:程式設計綜合問答

常見誤區

許多開發者試圖手動構建 PlanarYUVLuminanceSource,需理解 data, width, height, dstLeft, dstTop, dstWidth, dstHeight 等參數含義,極易出錯。

推薦做法:集成官方 CaptureActivity

  1. 將 ZXing 核心庫(core.jar)與 Android 模組(zxing-android)導入專案。
  2. AndroidManifest.xml 註冊活動:
    <activity android:name="com.google.zxing.client.android.CaptureActivity"
              android:configChanges="orientation|keyboardHidden" />
    <activity android:name="com.google.zxing.client.android.PreferencesActivity"
              android:configChanges="orientation|keyboardHidden" />
  3. 啟動掃碼並接收結果:
    // 啟動
    Intent intent = new Intent(this, CaptureActivity.class);
    startActivityForResult(intent, REQUEST_CODE_SCAN);
    
    // 接收
    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        if (requestCode == REQUEST_CODE_SCAN && resultCode == RESULT_OK) {
            String result = data.getStringExtra("SCAN_RESULT");
            // 處理掃碼結果
        }
    }

優勢

  • 自動處理相機預覽、自動對焦、光照補償、多格式解碼。
  • 內建 UI、提示音、震動反饋,開箱即用。
  • 避免手動轉換 YUV、計算裁剪區域等底層細節。

自定義 UI 時

若需自定義掃描界面,可繼承 CaptureActivity 並覆寫 onCreate、drawViewfinder 等方法,而非從頭寫解碼邏輯。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved