作者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)