2011-03-31 74 views
9

我已經實現了一個相機應用程序,它將在設備的整個屏幕中顯示預覽。但我的要求是在一個小屏幕上顯示相機預覽。我的設備分辨率爲800x480(WxH),即Nexus One。我可以在整個屏幕中顯示預覽,而不會縮小預覽範圍。它的出現非常完美,但是當我嘗試在小屏幕(我的整個移動屏幕的一部分)中顯示預覽時,預覽會變得很緊張,看起來不太好。調整相機預覽的大小

有什麼方法可以在小屏幕上正確顯示預覽。我認爲我們需要縮小圖像預覽。但是當我嘗試縮小圖像預覽時,android系統本身不允許設置縮放預覽大小。

任何人都可以幫助我如何在小屏幕上縮放圖像預覽。

+0

你解決了嗎? – powder366 2013-08-21 17:22:12

回答

0

烏代,

您是否嘗試過只是改變

<android.view.SurfaceView xmlns:android="http://schemas.android.com/apk/res/android" 
     android:id="@+id/preview" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:layout_above="@id/ButtonGroup" 
     /> 

到這樣的事情....

<android.view.SurfaceView xmlns:android="http://schemas.android.com/apk/res/android" 
     android:id="@+id/preview" 
     android:layout_width="fill_parent" 
     android:layout_height="50dp" 
     android:layout_above="@id/ButtonGroup" 
     /> 

如果這不是你要找的東西,也許你可以發佈您的當前代碼,以便我們可以查看它? :-)

+0

非常感謝Jared的回覆。我在這裏發佈之前已經嘗試了以上建議。我們可以減小預覽大小(表面視圖大小)。但郵件問題在這裏是預覽屏幕。將相機預覽正確(無任何拉伸或收縮)與表面視圖的大小非常困難。 – uday 2011-04-18 05:00:16

+0

uday,我想可能的解決方案是,以編程方式確定所拍照片(或預覽)的大小,獲取尺寸,然後以編程方式更改預覽的大小以獲得相同的寬高比?它會發現哪個尺寸太大(寬度或高度),然後儘可能縮小它,因此它是合適的比例。這對你有用嗎?如果是這樣,讓我知道,我會看看我能否得到這個工作。 :-) – Jared 2011-04-21 03:20:08

3

經過大約一個星期的同樣的問題掙扎之後,我終於可以通過編程方式獲取相機預覽來調整自身了! :-D

preview是我SurfaceView的名稱,並在此代碼,我有它設置,以便它會調整自己是RelativeLayout,它在寬度的一半。

ViewGroup.LayoutParams params = preview.getLayoutParams(); 
RelativeLayout myRelLayout = (RelativeLayout) findViewById(R.id.myRelLayout); 
params.width = (int) (myRelLayout.getWidth()/2); 
preview.setLayoutParams(params); 

現在爲了您的使用,您需要查看預覽的分辨率,然後根據該分辨率相應地縮小高度或寬度。

+0

另外,在相關筆記中,我拍攝第一張照片後出現了相機預覽失真的嚴重問題。後來我發現,我需要將這行添加到我的清單文件中,並修復了它。 :-) '' – Jared 2011-05-06 03:45:33

+0

你能分享一些代碼嗎? – powder366 2013-08-21 17:21:09