Android -- 觸摸Area對焦地區

來源:互聯網
上載者:User

標籤:android   style   blog   io   ar   color   sp   div   on   

老早就想找關於不同點擊不同地方的對焦,但是一直沒有找到,現在項目又需要這個功能,又跑出來找找,最後還是找到啦~~關於對焦更多的是關於自動對焦。

廢話不多說,直接來乾貨,主要是setFocusAreas方式實現的。

每個對角地區是一個具有特定權值的長方形。方向與重力感應的方向有關。這個方向不會受到 setDisplayOrientation(int)設定的影響。矩形的座標範圍從-1000到1000 ,(-1000,-1000)是左上方點(1000,1000)是右下角點。對焦地區的長或寬不能為0或負數,而權值的取值範圍是1-1000,權值為矩形範圍像素所平分,這意味著同樣的權值對焦地區大的對整體的對焦影響小。

Code                                                                                   
private Rect calculateTapArea(float x, float y, float coefficient) {        float focusAreaSize = 300;        int areaSize = Float.valueOf(focusAreaSize * coefficient).intValue();        int centerX = (int) (x / getResolution().width - 1000);        int centerY = (int) (y / getResolution().height - 1000);        int left = clamp(centerX - areaSize / 2, -1000, 1000);        int top = clamp(centerY - areaSize / 2, -1000, 1000);        RectF rectF = new RectF(left, top, left + areaSize, top + areaSize);        return new Rect(Math.round(rectF.left), Math.round(rectF.top),                Math.round(rectF.right), Math.round(rectF.bottom));    }    private int clamp(int x, int min, int max) {        if (x > max) {            return max;        }        if (x < min) {            return min;        }        return x;    }    public Camera.Size getResolution() {        Camera.Parameters params = myCamera.getParameters();        Camera.Size s = params.getPreviewSize();        return s;    }

在OnTouch事件裡面調用此方法。

我是天王蓋地虎的分割線                                                             

Android -- 觸摸Area對焦地區

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.