Android 2.2 SDK - PhotoCapture 示例不工作

标签 android mobile android-emulator android-2.2-froyo

我正在整合此处的确切代码:http://labs.makemachine.net/2010/03/simple-android-photo-capture/

Activity 的运作方式:点击“按钮”-> 转到默认相机。拍照。 “重新拍摄”按钮有效,“取消”按钮有效(返回“按钮”布局),但“确定”按钮无效(然后图像应出现在先前布局中的“按钮”上方)。这与它如何将图像保存到 SD 卡有关吗?我想不通!此外,我正在设备上测试此应用。

最佳答案

开始工作了:

package com.android.xxx;

import java.io.File;

import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.os.Environment;
import android.provider.MediaStore;
import android.view.Window;

public class CameraView extends MenusHolder {

    protected String _path;
    protected boolean _taken;

    protected static final String PHOTO_TAKEN = "photo_taken";

    @Override
    public void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        setContentView(R.layout.create_event_view);

        File imageDirectory = new File(Environment.getExternalStorageDirectory() + "/MyFolder/");
        imageDirectory.mkdirs();

        _path = Environment.getExternalStorageDirectory() + "/MyFolder/temporary_holder.jpg"; 

        startCameraActivity();

    }

    protected void startCameraActivity() {

        File file = new File(_path);
        Uri outputFileUri = Uri.fromFile(file);

        Intent intent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
        intent.putExtra(MediaStore.EXTRA_OUTPUT, outputFileUri);

        startActivityForResult(intent, 0);

    }

    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {

        switch(resultCode) {

            case 0:
                finish();
                break;

            case -1:
                onPhotoTaken();
                break;

        }

    }

    protected void onPhotoTaken() {

        _taken = true;
        finish();
        Intent newView1 = new Intent(CameraView.this, CreateEventView.class);
        CameraView.this.startActivity(newView1);

    }

    @Override
    protected void onSaveInstanceState(Bundle outState) {

        outState.putBoolean(CameraView.PHOTO_TAKEN, _taken);  

    }

    @Override
    protected void onRestoreInstanceState(Bundle savedInstanceState) {

        if (savedInstanceState.getBoolean(CameraView.PHOTO_TAKEN)) {

            onPhotoTaken();

        }

    }

}

关于Android 2.2 SDK - PhotoCapture 示例不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4564729/

相关文章:

android - 从 ActionBar 的搜索 View 中删除图标

HTML "Input"按钮在插入 <div> 标签时停止工作

android - 仅在物理设备而非模拟器上运行 Android 应用程序

android - 在模拟器中模拟服务崩溃

android - 删除在我的情况下未放入堆栈的 fragment

android - MapView 上显示的关闭气球

c# - Azure 移动服务计划作业 - 是否有使用 javascript 的替代方案?

mobile - WP7锁屏可以用代码更新吗?

c# - Android 模拟器没有响应 Xamarin 的 AMD 进程的问题

Android: Intent 过滤器验证失败