2012-03-11 67 views
2

我想改變預覽中的一些像素比其他的要暗一些。 假設我希望預覽的上半部分比預覽的下半部分更暗。Android相機 - 如何更改預覽上的像素?

我試圖用setPreviewCallback這樣的:

camera.setPreviewCallback(new PreviewCallback() { 
    // Called for each frame previewed 
    public void onPreviewFrame(byte[] data, Camera camera) { 
    Log.d(TAG, "onPreviewFrame called at: " + System.currentTimeMillis()); 
    for (int i = 0; i < data.length; i++){ 
     if(i < data.length/2) 
     data[i] = manipulate(data[i]); 
    } 
    Preview.this.invalidate(); 
    } 
}); 

但它不工作,因爲我做錯了什麼。我怎樣才能使它工作?

感謝 的Eyal

回答

1

這是不可能操縱這樣的預覽,因爲你只會得到緩衝的副本到onPreviewFrame。

最簡單的做法是覆蓋另一個視圖,該視圖使用透明畫布使其部分更暗。如果您需要檢查傳入圖像以生成疊加層,則疊加視圖可以實現Camera.PreviewCallback。

在你的活動你這樣做:

setContentView(yourPreviewSurfaceView); 
addContentView(yourOverlayView, ...); 
+0

謝謝!那工作 – Eyal 2012-03-11 15:13:32