【发布时间】:2014-08-18 14:59:40
【问题描述】:
实际上,我正在尝试在另一个活动中使用相机动作(例如“拍照”)。 我是说。我有一个活动(CameraPreviewActivity)。它显示 CameraPreview。 如果用户放置“绘制”按钮。然后开始新的活动(CanvasActivity)。它显示一个透明的画布。 因此用户可以在相机预览上绘图。
我想要做的就是在 CanvasActivity 中制作一个“拍照”按钮。 实际上它是一个不同的活动,所以我无法在 CavasActivity 中制作“拍照”按钮。 所以我使用 intent.putExtra 方法发送相机信息。但它根本不起作用。
如何在 CanvasActivity 中控制 CameraPreviewActivity。 我的想法错了吗?或者有什么好的方法可以解决这个问题。
这是我的代码。
CameraPreviewActivity。
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.ex1);
cameraObject = isCameraAvailiable();
showCamera = new ShowCamera(this, cameraObject);
setCameraDisplayOrientation(this, 0, cameraObject);
FrameLayout preview = (FrameLayout) findViewById(R.id.camera_preview);
preview.addView(showCamera);
}
public void snapIt(View view) {
cameraObject.takePicture(null, null, capturedIt);
}
public void drawIt(View view) {
Intent intent = new Intent(this, DrawingActivity.class);
startActivity(intent);
}
它是 XML。
<FrameLayout
android:id="@+id/camera_preview"
android:layout_width="match_parent"
android:layout_height="match_parent" >
</FrameLayout>
<Button
android:id="@+id/button_capture"
android:layout_width="136dp"
android:layout_height="wrap_content"
android:layout_gravity="left"
android:onClick="snapIt"
android:text="@string/Capture" />
<Button
android:id="@+id/button_draw"
android:layout_width="126dp"
android:layout_height="wrap_content"
android:layout_gravity="right"
android:onClick="drawIt"
android:text="@string/Draw" />
</FrameLayout>
画布活动。
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.ex2);
findViewById(R.id.myDrawing).setBackgroundColor
(getResources().getColor(android.R.color.transparent));
FrameLayout layout = (FrameLayout) findViewById(R.id.drawingView);
mView = new DrawingView(this);
layout.addView(mView, new LayoutParams(
LinearLayout.LayoutParams.MATCH_PARENT,
LinearLayout.LayoutParams.MATCH_PARENT));
init();
}
它是 XML。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/myDrawing"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:color="#00000000" >
<FrameLayout
android:id="@+id/drawingView"
android:layout_width="318dp"
android:layout_height="match_parent"
android:layout_gravity="bottom"
android:layout_weight="0.99" >
</FrameLayout>
</LinearLayout>
非常感谢!!
【问题讨论】:
标签: android android-layout android-intent android-activity android-camera