ZXing左右鏡像翻轉問題

近期做柜端(Android)App,有個掃碼需求,隧將手機App工程中的掃碼組件拿來用嗽冒,就是zxing庫呀伙,集成的源碼补履,很老的版本了

問題1:左右翻轉問題

攝像頭對著我,我左移-像右移

嘗試多種方式剿另,無果箫锤,歷程如下:

方法 SurfaceView TextureView
view.setRotationY (180); 無效果 鏡像翻轉
view.setsetScaleY(-1); 無效果 鏡像翻轉
Animator 有動畫效果贬蛙,無鏡像翻轉 有動畫效果,動畫后鏡像翻轉
Matrix 無法獲取Matrix對象無法使用 鏡像翻轉
drawBitmap 界面變成白色谚攒,畫布上繪制的文字鏡像 無法獲取SurfaceHoder的lockCanvas方法
Camera.previewCallback 與項目實際使用不符未嘗試 與項目實際使用不符未嘗試

解決1:鏡像翻轉問題 即 解決畫面預覽問題

zxing這庫幾層handler通信確實看暈阳准,簡直就是對未知的不安,無從下手馏臭。最先就是直白的啥問題搜啥野蝇,反正AI答的也不太好使。了解了一下zxing源碼括儒,知道大致原理流程绕沈,參考該文章,有種感覺帮寻,畫面預覽跟真的碼識別沒多大關系乍狐,然后就了解用使用TextureView替代SurfaceView

方法1:先獲取SurfaceView的Surface,并將其傳遞給TextureView帖汞。預覽畫面白屏
https://blog.51cto.com/u_16175526/10345087

// 獲取SurfaceView的Surface
SurfaceView surfaceView = findViewById(R.id.surfaceView);
SurfaceHolder surfaceHolder = surfaceView.getHolder();
Surface surface = surfaceHolder.getSurface();

// 創(chuàng)建TextureView并設置Surface
TextureView textureView = new TextureView(this);
textureView.setSurfaceTextureListener(new TextureView.SurfaceTextureListener() {
    @Override
    public void onSurfaceTextureAvailable(SurfaceTexture surfaceTexture, int width, int height) {
        Surface newSurface = new Surface(surfaceTexture);
        // 使用新的Surface繪制圖像
    }

    @Override
    public void onSurfaceTextureSizeChanged(SurfaceTexture surface, int width, int height) {}

    @Override
    public boolean onSurfaceTextureDestroyed(SurfaceTexture surface) {
        return true;
    }

    @Override
    public void onSurfaceTextureUpdated(SurfaceTexture surface) {}
});

// 將TextureView添加到布局中
ViewGroup parent = (ViewGroup) surfaceView.getParent();
int index = parent.indexOfChild(surfaceView);
parent.removeView(surfaceView);
parent.addView(textureView, index);

方法2:https://blog.csdn.net/oDongFangZhiZi/article/details/73867785课竣。成功

使用mCamera.setPreviewTexture((SurfaceTexture) surfaceTexture);替代mCamera.setPreviewDisplay((SurfaceHolder) msg.obj);褐墅。

原本覺得預覽組件耦合很深,不容易替換惜傲。但是先換再說,找到setPreviewDisplay贝攒,就是camera的核心方法openDriver操漠。

改起來:

  • public synchronized void openDriver(SurfaceTexture holder),該調整的入?yún)⒄{整一下
  • 頁面上原本Camera.CallBack的實現(xiàn)邏輯對應的挪到TextureView.SurfaceTextureListener的實現(xiàn)方法中

就這饿这,可以了

問題2:橫屏設備浊伙,預覽畫面水平拉伸

camera.setDisplayOrientation(270);設置橫屏展示

水平拉伸問題有個取巧辦法:

d99ebb8a-a9f3-4060-af5f-a0055bfbab07.png
...
<RelativeLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            ...>
            <TextureView
                ...
                android:layout_marginTop="-340dp"
                android:layout_marginBottom="-340dp"/>
...

硬給它顯示成豎屏的,但只可見部分預覽畫面

?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末长捧,一起剝皮案震驚了整個濱河市嚣鄙,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌串结,老刑警劉巖哑子,帶你破解...
    沈念sama閱讀 216,402評論 6 499
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異肌割,居然都是意外死亡卧蜓,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,377評論 3 392
  • 文/潘曉璐 我一進店門把敞,熙熙樓的掌柜王于貴愁眉苦臉地迎上來弥奸,“玉大人,你說我怎么就攤上這事奋早∈Ⅵ” “怎么了赠橙?”我有些...
    開封第一講書人閱讀 162,483評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長愤炸。 經(jīng)常有香客問我期揪,道長,這世上最難降的妖魔是什么规个? 我笑而不...
    開封第一講書人閱讀 58,165評論 1 292
  • 正文 為了忘掉前任凤薛,我火速辦了婚禮,結果婚禮上诞仓,老公的妹妹穿的比我還像新娘枉侧。我一直安慰自己,他們只是感情好狂芋,可當我...
    茶點故事閱讀 67,176評論 6 388
  • 文/花漫 我一把揭開白布榨馁。 她就那樣靜靜地躺著,像睡著了一般帜矾。 火紅的嫁衣襯著肌膚如雪翼虫。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,146評論 1 297
  • 那天屡萤,我揣著相機與錄音珍剑,去河邊找鬼。 笑死死陆,一個胖子當著我的面吹牛招拙,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播措译,決...
    沈念sama閱讀 40,032評論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼别凤,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了领虹?” 一聲冷哼從身側響起规哪,我...
    開封第一講書人閱讀 38,896評論 0 274
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎塌衰,沒想到半個月后诉稍,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,311評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡最疆,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,536評論 2 332
  • 正文 我和宋清朗相戀三年杯巨,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片努酸。...
    茶點故事閱讀 39,696評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡服爷,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情层扶,我是刑警寧澤,帶...
    沈念sama閱讀 35,413評論 5 343
  • 正文 年R本政府宣布烙荷,位于F島的核電站镜会,受9級特大地震影響,放射性物質發(fā)生泄漏终抽。R本人自食惡果不足惜戳表,卻給世界環(huán)境...
    茶點故事閱讀 41,008評論 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望昼伴。 院中可真熱鬧匾旭,春花似錦、人聲如沸圃郊。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,659評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽持舆。三九已至色瘩,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間逸寓,已是汗流浹背居兆。 一陣腳步聲響...
    開封第一講書人閱讀 32,815評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留竹伸,地道東北人泥栖。 一個月前我還...
    沈念sama閱讀 47,698評論 2 368
  • 正文 我出身青樓,卻偏偏與公主長得像勋篓,于是被迫代替她去往敵國和親吧享。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,592評論 2 353

推薦閱讀更多精彩內(nèi)容