[問題] 請問將系統相機內嵌到 Fragment Tab 中

看板AndroidDev作者 (差點不會用PTT了 XD)時間12年前 (2014/01/03 20:22), 編輯推噓2(204)
留言6則, 4人參與, 最新討論串1/1
我是剛入門的新手,有些觀念還不成熟,請大家多多指教 目前想要在已經使用 Fragment 做好的 Tab 分頁中 嵌入系統內建相機 或是 自訂的相機 Activity 但仍保留下面的 Tab 功能 因為目前直接使用 startActivityForResult() 開啟其他 Activity 都會直接全螢幕顯示,沒辦法使用下面的 Tab 切換頁面 找了很久一直找不到好的方法 請問各為有經驗的版友,是否有什麼方法或建議可以實現此功能呢? 或是可以讓下面的 Tab 能一直顯示在最上層? 謝謝 Or2... =================================================================== 最後我有想到一個可以塞進去的方法,給大家參考 (但是會有相對應的問題產生,詳見最後) <1> 原本使用 startActivityForResult() 開啟的方式取消 改成建立物件的方式 在 onCreateView() 中 mContainer = (RelativeLayout) mView.findViewById(R.id.cameraContent); mCameraView = new CameraView(mContainer, mCallBackCam); -- mView: 該 Tab 的 layout -- mContainer: 預留給擺 CameraView 的 RelativeLayout -- mCameraView: CameraView 物件 -- mCallBackCam: 用來連結拍完照執行原本的 onResultActivity() 並在觸發的按鈕改成 mCameraView.startCamera(); mContainer.setVisibility(View.VISIBLE); <2> 將原本繼承 Activity 改成繼承 View,將 Camera 建立在該 View 裡面 Constructer 要改成 public CameraView(ViewGroup vg, camCustomCallback callback) { ... mView = LayoutInflater.from(vg.getContext()) .inflate(R.layout.camera, null); vg.addView(mView); mCustomCallback = callback; ... } -- vg: 用來裝 CameraView 的 Parent -- callback: 用來傳回執行 Tab 中的 onActivityResult() 這樣是可以將 Camera 的畫面顯是在我指定的區塊中 不過 Camera 中的 SurfaceView 的最大長寬卻會被該指定區塊所限制, 因此而變形 (變肥) 目前只能根據高度來縮小寬度(兩邊會露出沒用到的空間) PS: Tab 跟 Camera 的 layout_width & layout_height 都設為 "wrap_content" -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 211.75.82.188

01/03 20:30, , 1F
自己刻一個相機的Fragment如何?
01/03 20:30, 1F

01/03 20:49, , 2F
同樓上,你在創建tab時;不同的tab應該有對應到不同的cla
01/03 20:49, 2F

01/03 20:50, , 3F
ss吧?就在那個class下的onCreateView裡寫上自訂的相機即
01/03 20:50, 3F

01/03 20:50, , 4F
可~
01/03 20:50, 4F
謝謝樓上兩位的建議 但是我那個 Tab 上還有其他功能 (選照片之類的),所以不想把他跟 Camera 混在一起 想找看看有沒有切的比較乾淨的方法 ※ 編輯: guanwha 來自: 114.45.247.158 (01/03 21:56) ※ 編輯: guanwha 來自: 114.45.247.158 (01/03 21:57)

01/03 23:02, , 5F
你可以GOOGLE一下ActivityGroup 可以模擬Tabhost
01/03 23:02, 5F
我有看到 ActivityGroup 可以實做,但是他已經被 Google 在 API13 被 deprecate 所以沒有打算用 ActivityGroup ※ 編輯: guanwha 來自: 114.45.247.158 (01/03 23:24)

01/04 15:02, , 6F
你各個功能不是都已經用Fragment切開了嗎?
01/04 15:02, 6F
是的,但是在該 Tab 主要是顯示照片結果 裡面有兩個 Button 一個是開啟相簿瀏覽器來選照片 (目前用內建的) 一個是開啟自訂照相機來拍照片 (因為需要在上面加 Button 所以用自訂的) ※ 編輯: guanwha 來自: 114.45.233.59 (01/04 16:27) ※ 編輯: guanwha 來自: 114.45.240.102 (01/05 13:00)
文章代碼(AID): #1IngkBk7 (AndroidDev)