启动android摄像头的意图和布局

启动android摄像头的意图和布局,android,android-layout,android-intent,Android,Android Layout,Android Intent,我正在尝试加载相机,以便从我的android应用程序中拍照 my Photos.java是 private Uri imageUri; public void takePhoto(View view) { Intent intent = new Intent("android.media.action.IMAGE_CAPTURE"); File photo = new File(Environment.getExternalStorageDirectory(), "Pic.j

我正在尝试加载相机,以便从我的android应用程序中拍照

my Photos.java是

private Uri imageUri;

public void takePhoto(View view) {
    Intent intent = new Intent("android.media.action.IMAGE_CAPTURE");
    File photo = new File(Environment.getExternalStorageDirectory(),  "Pic.jpg");
    intent.putExtra(MediaStore.EXTRA_OUTPUT,
            Uri.fromFile(photo));
    imageUri = Uri.fromFile(photo);
    startActivityForResult(intent, TAKE_PICTURE);
}

@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    switch (requestCode) {
    case TAKE_PICTURE:
        if (resultCode == Activity.RESULT_OK) {
            Uri selectedImage = imageUri;
            getContentResolver().notifyChange(selectedImage, null);
            ImageView imageView = (ImageView) findViewById(R.id.ImageView);
            ContentResolver cr = getContentResolver();
            Bitmap bitmap;
            try {
                 bitmap = android.provider.MediaStore.Images.Media
                 .getBitmap(cr, selectedImage);

                imageView.setImageBitmap(bitmap);
                Toast.makeText(this, selectedImage.toString(),
                        Toast.LENGTH_LONG).show();
            } catch (Exception e) {
                Toast.makeText(this, "Failed to load", Toast.LENGTH_SHORT)
                        .show();
                Log.e("Camera", e.toString());
            }
        }
    }
这很有效。但这是布局部分称之为我正在挣扎的意图

我创建了一个按钮来加载相机

<Button
    android:id="@+id/takePhoto"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_marginTop="41dp"
    android:onClick="takePhoto"
    android:text="@string/Photos_Button1" />


但是现在我需要一个部分来展示我拍摄的图像。我该怎么做?

试试看……

注:仅适用于Android API 8//2.2或更高版本

XML文件:-

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#f0f0f0">
    <TextView
        android:id="@+id/lblSelectOptions"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginLeft="20dp"
        android:layout_marginTop="20dp"
        android:text="@string/two_options"
        android:textAppearance="?android:attr/textAppearanceLarge"
        android:textColor="#ff0000"/>
    <Button
        android:id="@+id/btnPhotoCamera"
        android:layout_width="75dp"
        android:layout_height="wrap_content"
        android:layout_below="@+id/lblSelectOptions"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="10dp"
        android:text="@string/camera"/>
    <Button
        android:id="@+id/btnPhotoGallery"
        android:layout_width="75dp"
        android:layout_height="wrap_content"
        android:layout_below="@+id/btnPhotoCamera"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="10dp"
        android:text="@string/gallery"/>
    <Button
        android:id="@+id/btnCancel"
        android:layout_width="120dp"
        android:layout_height="wrap_content"
        android:layout_below="@+id/btnPhotoGallery"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="19dp"
        android:text="@string/cancel"/>
    <TextView
        android:id="@+id/lblDisplayImage"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/btnCancel"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="10dp"
        android:text="@string/below_this_text_image_will_be_displayed"
        android:textAppearance="?android:attr/textAppearanceMedium"
        android:textColor="#000000"
        android:textSize="13dp"/>
    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_below="@+id/lblDisplayImage"
        android:layout_centerInParent="true"
        android:layout_marginTop="10dp"
        android:gravity="bottom">
        <!--
             <ScrollView
            android:layout_width="match_parent"
            android:layout_height="match_parent" >
        -->
        <ImageView
            android:id="@+id/imgDisplayImage"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_below="@+id/lblDisplayImage"
            android:layout_centerInParent="true"
            android:contentDescription="@string/area_where_image_is_to_be_displayed" />
        <!-- </ScrollView> -->
    </RelativeLayout>
</RelativeLayout>

还可以根据您的使用情况修改Android清单文件,如下所示:-

<manifest....
  <uses-sdk
        android:minSdkVersion="3"
        android:targetSdkVersion="21" />
    <uses-permission android:name="android.permission.CAMERA" />
    <uses-permission android:name="android.permission.RECORD_VIDEO" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
    <uses-feature
        android:name="android.hardware.camera"
        android:required="false" />
<application....
..........
</application>
</manifest>

尝试一下…

注:仅适用于Android API 8//2.2或更高版本

XML文件:-

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#f0f0f0">
    <TextView
        android:id="@+id/lblSelectOptions"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginLeft="20dp"
        android:layout_marginTop="20dp"
        android:text="@string/two_options"
        android:textAppearance="?android:attr/textAppearanceLarge"
        android:textColor="#ff0000"/>
    <Button
        android:id="@+id/btnPhotoCamera"
        android:layout_width="75dp"
        android:layout_height="wrap_content"
        android:layout_below="@+id/lblSelectOptions"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="10dp"
        android:text="@string/camera"/>
    <Button
        android:id="@+id/btnPhotoGallery"
        android:layout_width="75dp"
        android:layout_height="wrap_content"
        android:layout_below="@+id/btnPhotoCamera"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="10dp"
        android:text="@string/gallery"/>
    <Button
        android:id="@+id/btnCancel"
        android:layout_width="120dp"
        android:layout_height="wrap_content"
        android:layout_below="@+id/btnPhotoGallery"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="19dp"
        android:text="@string/cancel"/>
    <TextView
        android:id="@+id/lblDisplayImage"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/btnCancel"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="10dp"
        android:text="@string/below_this_text_image_will_be_displayed"
        android:textAppearance="?android:attr/textAppearanceMedium"
        android:textColor="#000000"
        android:textSize="13dp"/>
    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_below="@+id/lblDisplayImage"
        android:layout_centerInParent="true"
        android:layout_marginTop="10dp"
        android:gravity="bottom">
        <!--
             <ScrollView
            android:layout_width="match_parent"
            android:layout_height="match_parent" >
        -->
        <ImageView
            android:id="@+id/imgDisplayImage"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_below="@+id/lblDisplayImage"
            android:layout_centerInParent="true"
            android:contentDescription="@string/area_where_image_is_to_be_displayed" />
        <!-- </ScrollView> -->
    </RelativeLayout>
</RelativeLayout>

还可以根据您的使用情况修改Android清单文件,如下所示:-

<manifest....
  <uses-sdk
        android:minSdkVersion="3"
        android:targetSdkVersion="21" />
    <uses-permission android:name="android.permission.CAMERA" />
    <uses-permission android:name="android.permission.RECORD_VIDEO" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
    <uses-feature
        android:name="android.hardware.camera"
        android:required="false" />
<application....
..........
</application>
</manifest>

然而,在我的java中,这一点并没有偏离任何地方,我制作了“takePhoto”


然而,在我的java anywhere中并没有出现这种情况,我编造了“takePhoto”

我也遇到了一些错误,代码中包含“TAKE_PICTURE”,表示cannon可以解析为变量。。。然后用“ImageView”表示cannon被解析或不是一个字段,谢谢Henry,我也遇到了错误,代码中包含“拍照”表示cannon被解析为一个变量。。。然后用“ImageView”表示无法解析或不是字段,感谢HenryFile f=Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY\u PICTURES);u=Uri.fromFile(新文件(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_图片),“myFile.jpg”);我已经用过了,并且已经成功地执行了。我不知道你为什么会遇到这个问题。你能帮我解释一下这两行的目的吗?我也许能找出这件事的症结所在。谢谢你<代码>环境。目录图片
仅适用于API 8(Android 2.2)或更高版本。。。我使用的是7//2.1:)删除的
camera.putExtra(“裁剪”,“真”)因为它不是完全可接受的iNet方法。文件f=Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY\u PICTURES);u=Uri.fromFile(新文件(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_图片),“myFile.jpg”);我已经用过了,并且已经成功地执行了。我不知道你为什么会遇到这个问题。你能帮我解释一下这两行的目的吗?我也许能找出这件事的症结所在。谢谢你<代码>环境。目录图片
仅适用于API 8(Android 2.2)或更高版本。。。我使用的是7//2.1:)删除的
camera.putExtra(“裁剪”,“真”)因为它不是完全可接受的iNet方法。
     android:onClick="takePhoto"