作者guanwha (差點不會用PTT了 XD)
看板AndroidDev
標題[問題] 請問將系統相機內嵌到 Fragment Tab 中
時間Fri Jan 3 20:22:20 2014
我是剛入門的新手,有些觀念還不成熟,請大家多多指教
目前想要在已經使用 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
1F:→ typepeter:自己刻一個相機的Fragment如何? 01/03 20:30
2F:→ Griffith:同樓上,你在創建tab時;不同的tab應該有對應到不同的cla 01/03 20:49
3F:→ Griffith:ss吧?就在那個class下的onCreateView裡寫上自訂的相機即 01/03 20:50
4F:→ Griffith:可~ 01/03 20:50
謝謝樓上兩位的建議
但是我那個 Tab 上還有其他功能 (選照片之類的),所以不想把他跟 Camera 混在一起
想找看看有沒有切的比較乾淨的方法
※ 編輯: guanwha 來自: 114.45.247.158 (01/03 21:56)
※ 編輯: guanwha 來自: 114.45.247.158 (01/03 21:57)
5F:推 givemepass:你可以GOOGLE一下ActivityGroup 可以模擬Tabhost 01/03 23:02
我有看到 ActivityGroup 可以實做,但是他已經被 Google 在 API13 被 deprecate
所以沒有打算用 ActivityGroup
※ 編輯: guanwha 來自: 114.45.247.158 (01/03 23:24)
6F:推 tac0wu:你各個功能不是都已經用Fragment切開了嗎? 01/04 15:02
是的,但是在該 Tab 主要是顯示照片結果
裡面有兩個 Button
一個是開啟相簿瀏覽器來選照片 (目前用內建的)
一個是開啟自訂照相機來拍照片 (因為需要在上面加 Button 所以用自訂的)
※ 編輯: guanwha 來自: 114.45.233.59 (01/04 16:27)
※ 編輯: guanwha 來自: 114.45.240.102 (01/05 13:00)