關於使用Google提供的ZXing掃描二維碼Demo只能橫屏的解決辦法

關於屏幕的設置:橫屏,豎屏,咱們通常都是經過Manifest.xml中的android:screenOrientation=""屬性來控制,這個屬性詳情能夠查看:http://blog.csdn.net/nmgchfzhzhg/article/details/8077133,咱們發現ZXing的Demo中也是將此屬性設置的爲:android:screenOrientation="landscape"橫屏顯示,一開始我相信大部分的都和我同樣直接去改這個屬性的值,惋惜結果發現掃描時效果更糟糕,居然出現了倒立。畫面莫名其妙被旋轉,真的要鬱悶死了,直到今天終於找到了解決辦法,解決的不是太完美,但仍是比以前好不少,代碼以下:html

在掃描類CaptureActivity.java中實現了Callback接口,以後重載方法surfaceChanged(SurfaceHolder holder, int format, int width, int height)中判斷屏幕的繪製java

@SuppressLint("NewApi")
    @Override
    public void surfaceChanged(SurfaceHolder holder, int format, int width, int height)
    {
         int rotation = this.getWindowManager ().getDefaultDisplay ().getRotation ();
         int degrees = 0 ;
         
         switch (rotation ) {
        case Surface.ROTATION_0:
            degrees = 270;
            break;
        case Surface.ROTATION_90:
            degrees = 0;
            break;
        case Surface.ROTATION_180:
            degrees = 90;
            break;
        case Surface.ROTATION_270:
            degrees = 180;
            break;
        }

    }

好了,就是這麼簡單,再次運行,OKandroid

 

還有一種解決方式:轉載http://www.nginx.cn/1476.htmlnginx

還有一種介紹很是全的:轉載Zxing二維碼精簡(豎屏、拉伸處理、掃描框大小和掃描線移動)ide

關於中間掃描線以及下面文字的使用修改this

相關文章
相關標籤/搜索