简体   繁体   English

Android相机意图使用另一个活动

[英]android camera intent use another activity

actually i'm trying to use camera action(like a 'take a photo') in another activity. 实际上,我正在尝试在另一项活动中使用相机动作(例如“拍照”)。 i mean. 我的意思是。 i got a activity(CameraPreviewActivity). 我有一个活动(CameraPreviewActivity)。 it shows CameraPreview. 它显示CameraPreview。 if user put the 'draw' button. 如果用户点击“绘制”按钮。 and then new activity(CanvasActivity) starts. 然后新的活动(CanvasActivity)开始。 and it show a transparent Canvas. 它显示了一个透明的画布。 so user can draw on the Camera preview. 因此用户可以在“相机”预览上进行绘制。

all i want to do is make a 'take a picture' button in the CanvasActivity. 我要做的就是在CanvasActivity中创建一个“拍照”按钮。 actually its a different activity so i couldn't make a 'take a picture' button in the CavasActivity. 实际上,它是一个不同的活动,因此我无法在CavasActivity中创建“拍照”按钮。 so i use intent.putExtra method to send Camera information. 所以我用intent.putExtra方法发送Camera信息。 but it's not working at all. 但它根本不起作用。

how can i control the CameraPreviewActivity at CanvasActivity. 我如何在CanvasActivity中控制CameraPreviewActivity。 is my idea wrong ? 我的想法错了吗? or is there any good way to figure out this problem. 还是有什么好办法解决这个问题。

here's my code. 这是我的代码。

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);
}

and it's XML. 这是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>

CanvasActivity. CanvasActivity。

    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();
    }

and it's XML. 这是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>

thanks a lot !! 非常感谢 !!

how can i control the CameraPreviewActivity at CanvasActivity 我如何在CanvasActivity中控制CameraPreviewActivity

You don't. 你不知道 Allow the user to take a picture by some means on the CanvasActivity , such as: 允许用户通过某种方式在CanvasActivityCanvasActivity ,例如:

  • via a button, as you originally proposed 通过按钮,如您最初建议的那样
  • via an action bar item 通过操作栏项
  • via clicking on the preview itself 通过单击预览本身
  • via long-clicking on the preview itself 通过长按预览本身
  • via some other sort of gesture 通过其他手势
  • etc. 等等

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM