1. 安卓開發 camera如何去掉preview size的全屏選項
AlertDialog dialog = builder.create(); dialog.setView(view); dialog.show(); WindowManager m = getWindowManager(); Display d = m.getDefaultDisplay(); //為獲取屏幕寬、高 android.view.WindowManager.LayoutParams p = dialog.getWindo...
2. android camera2 用surfaceview輸出預覽圖像畫面拉長
項目當中遇到調整攝像頭位置需要全屏顯示攝像頭預覽界面,過程中發現預覽界面存在無法顯示全,畫面被拉伸的問題。surfaceview的寬高比可能與camera設置的寬高比不一致 ,經測試發現設置Camera 預覽寬高可解決此問題(注意這里設置屏幕物理寬高不起作用,必須設置屏幕解析度)
////通過Resources獲取(無效)
// DisplayMetrics dm = getResources().getDisplayMetrics();
// heigth = dm.heightPixels;
// width = dm.widthPixels;
//獲取屏幕的默認解析度 設置預覽界面長寬解決預覽界面變形顯示不全問題(有效)
Display display = getWindowManager().getDefaultDisplay();
int height = display.getWidth();
int width = display.getHeight();
Camera.Size preSize = CameraUtil.getCloselyPreSize( true , width, height, parameters.getSupportedPreviewSizes());
parameters.setPreviewSize(preSize.width, preSize.height);
Log.e(TAG + "攝像頭尺寸前置" , "width" + preSize.width + "------" + "height" + preSize.height);
camera2.setParameters(parameters);
// 啟動攝像頭預覽
camera2.startPreview();
System.out.println( "camera.startpreview" );
3. android camera 橫屏 豎屏
試試下面兩種方法
1.修改manifest.xml,在需要橫屏的Activity里加上android:screenOrientation="landscape"
2.在Activity里加上setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
4. Android Camera 預覽為正方形
不支持的話可以根據比列適當的剪切一下控制項surface的大小應該可以顯示出1:1就是可能畫面會小一點
5. android 相機 怎麼改變相機預覽界面大小
對於android自定義相機的開發,因為涉及很多不同的機型,以下代碼設定某個特定的大小會使得程序死掉。
parameters.setPictureSize(640,640);
parameters.setPreviewSize(640,640)
所以,我們要適應其它的手機的話,就可以用:
List<Camera.Size> size1=parameters.getSupportedPictureSizes();
List<Camera.Size> size2=parameters.getSupportedPreviewSizes();
這樣就可以得到相應手機支持的大小了,可以寫一段小小的代碼來獲取自己想要的大小了。
6. android 怎麼判斷camera是否開啟預覽
雜家前文是在2012年的除夕之夜倉促完成,後來很多人指出了一些問題,瑣事纏身一直沒有進行升級。後來隨著我自己的使用,越來越發現不出個升級版的demo是不行了。有時候就連我自己用這個demo測一些性能、功能點,用著都不順手。當初代碼是在linux下寫的,弄到windows里下全是亂碼。還要自己改幾分鍾才能改好。另外,很多人說不能正常預覽,原因是我在布局裡把Surfaceview的尺寸寫死了。再有就是initCamera()的時候設參數失敗,直接黑屏退出,原因也是我把預覽尺寸和照片尺寸寫死了。再有就是照片變形的問題。為此,今天出一個升級版的demo,爭取全面適配所有機型。
上圖為此次的代碼結構,activity包里就是放CameraActivity,日後添加圖庫瀏覽功能再加GalleryActivity。為了使Camera的邏輯和界面的UI耦合度降至最低,封裝了CameraInterface類,裡面操作Camera的打開、預覽、拍照、關閉。preview包里是自定義的Surfaceview。在util包里放著CamParaUtil是專門用來設置、列印Camera的PreviewSize、PictureSize、FocusMode的,並能根據Activity傳進來的長寬比(主要是16:9 或 4:3兩種尺寸)自動尋找適配的PreviewSize和PictureSize,消除變形。默認的是全屏,因為一些手機全屏時,屏幕的長寬比不是16:9或4:3所以在找尺寸時也是存在一些偏差的。其中有個值,就是判斷兩個float是否相等,這個參數比較關鍵,裡面設的0.03.經我多個手機測試,這個參數是最合適的,否則的話有些奇葩手機得到的尺寸拍出照片變形。下面上源碼:
7. android camera 預覽幀數據是什麼類型
mediaserver進程是Camera Service的容器進程,它會動態載入Camera HAL和Gralloc HAL。
視頻數據幀首先必須從Camera驅動程序到達Camera硬體抽象層。
在Camera硬體抽象層,視頻數據幀被從video capture buffer拷貝到gralloc buffer。
surfaceflinger進程作為顯示伺服器會動態載入HWComposer HAL和Gralloc HAL。
在HWComposer硬體抽象層,會把數據幀從gralloc buffer拷貝到video output buffer。
經過上述過程,Camera Sensor採集的圖像最終通過LCDC HEO顯示在顯示屏上。
8. 請教關於android camera 預覽顯示方向的一個問題
必須要camera所在的activity設置為landscape,不然你橫豎屏預覽的時候預覽畫面時候景物角度會出問題,而且實物會被壓扁,UI上你可以做成豎屏的效果
9. android中做的項目camera為空,但是surfaceview還能使用camera預覽畫面,這是怎麼回事求大神解答
這不可能的,如果camera為空,你在初始化就已經出錯了,程序根本跑不起來。你連surfaceholder都無法設置,又怎麼可能可以看到預覽畫面。唯一的可能是camera再其它地方已經獲取了reference,沒有賦值給你看到到這個camera變數。你全局搜索下surfaceholder在哪裡設置的,往回找camera,就知道怎麼回事了
10. android camera2 上怎麼讓textureview全屏
選擇壁紙時有一個小小的技巧,小編在此就和各位機油們分享一下這個小竅門。 目前安卓手機屏幕主流的解析度大致有這么幾種:320x240(高x寬)、480x320、800x480、854x480、960x540。安卓壁紙有這么一個特性:壁紙是會隨著分屏的滑動而移動,所以壁紙的實際解析度比屏幕解析度要大,高度不變,但寬度卻是屏幕的兩倍! 屏幕解析度為320x240的安卓手機,對應的壁紙解析度為:320x480。 屏幕解析度為480x320的安卓手機,對應的壁紙解析度為:640x480。 屏幕解析度為800x480的安卓手機,對應的壁紙解析度為:960x800。 屏幕解析度為800x480的安卓手機,對應的壁紙解析度為:960x800。 屏幕解析度為854x480的安卓手機,對應的壁紙解析度為:960x854。 屏幕解析度為960x540的安卓手機,對應的壁紙解析度為:1080x960。