【问题标题】:android camera intent use another activityandroid相机意图使用另一个活动
【发布时间】: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


    【解决方案1】:

    如何在 CanvasActivity 中控制 CameraPreviewActivity

    你没有。允许用户通过某种方式在CanvasActivity上拍照,如:

    • 按您最初的建议通过按钮
    • 通过操作栏项
    • 通过点击预览本身
    • 通过长按预览本身
    • 通过其他某种手势

    【讨论】:

    • 那么如何在 CanvasActivity 中制作按钮。我是说。 CanvasActivity 中的按钮如何控制相机动作。谢谢你的回答!
    • @nus: "那么我怎样才能在 CanvasActivity 中制作按钮" -- 在布局中放置一个按钮。将OnClickListener 附加到它。在OnClickListeneronClick() 方法中为“相机动作”做一些事情。
    • 我做到了。但它返回 RunTimeError。我想知道 CanvasActivity。我如何调用相机的功能。对不起。我是android的新手。谢谢
    • 我的意思是。相机控制功能在 CameraPreviewActivity 中。但我必须在 CanvasActivity 中控制它。我该怎么做。
    • @nus: "它返回 RunTimeError" -- 然后你需要调试错误,looking at LogCat and examining the Java stack trace。 “我是 android 新手”——编写相机应用程序非常困难。 “相机控制功能在 CameraPreviewActivity 中。但我必须在 CanvasActivity 中控制它”——将两者组合成一个活动。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-07
    • 1970-01-01
    • 2016-07-07
    相关资源
    最近更新 更多