[英]How to change the activity's layout after pressing the camera capture button
我正在编写一个程序,该程序具有使用手机相机拍照的活动。 相机的SurfaceView下有一个捕获按钮。 现在,当用户按下捕获按钮时,我希望表面视图显示图片的预览,并且在此预览下应该有两个按钮(接受和取消)。 如果用户按“取消”,则程序应返回相机预览以拍摄另一张照片。
我假设我应该为此定义两个布局,但是我不知道如何在活动中从一种布局更改为另一种布局。
有多种方法可以实现此目的。
在您的layout.xml文件中的ViewGroup
即LinearLayout
定义visibility="gone"
的按钮。 然后调用myButtons.setVisibility(View.VISIBLE);
使它们可见。 要再次隐藏它们,请调用myButtons.setVisibility(View.GONE);
。
以编程方式创建按钮,然后在运行时将其附加到SurfaceView。
我希望选择1。
您可以为此使用两个片段。
第一个片段的布局带有照相机按钮。 第二个片段具有预览,两个按钮接受/取消。
您可以使用后退堆栈,以便取消(或用户按下后退)将使您返回第一个片段。
以下是“片段”教程(http://developer.android.com/guide/components/fragments.html)中的代码,显示了如何用另一个片段替换片段
// Create new fragment and transaction
Fragment newFragment = new ExampleFragment();
FragmentTransaction transaction = getFragmentManager().beginTransaction();
// Replace whatever is in the fragment_container view with this fragment,
// and add the transaction to the back stack
transaction.replace(R.id.fragment_container, newFragment);
transaction.addToBackStack(null);
// Commit the transaction
transaction.commit();
您的取消按钮可以使用popBackStack()(模拟用户的Back命令)将片段从堆栈中弹出。
还有另一种选择。 如果不需要预览的自定义布局,则可以跳过使用自定义摄像机,而只是使用startActivityForResult打开摄像机作为意图。 该意图将使用户可以拍照(在这种情况下,它会将生成的照片与您的主要活动进行通信),并且还具有一个取消按钮,无需拍照即可返回到您的应用。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.