java - 相机不工作?

标签 java android debugging

我正在开发一个应用程序,只是为了打开相机并捕获图像。我对此很陌生,我不明白我做错了什么。请有人帮我解决这个问题,我在这里发布我的 java 代码和 XML 代码:

    <?xml version="1.0" encoding="utf-8"?>
    <RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <TextView
    android:id="@+id/textView2"
    android:layout_width="206dp"
    android:layout_height="172dp"
    android:layout_alignParentStart="true"
    android:layout_alignParentTop="true"
    android:text="2nd activity" />

    <Button
    android:id="@+id/button"
    android:layout_width="100dp"
    android:layout_height="100dp"
    android:layout_alignParentBottom="true"
    android:layout_marginBottom="69dp"
    android:layout_toEndOf="@+id/textView2"
    android:text="Camera"
    app:layout_constraintBottom_toTopOf="@+id/textView2"
    app:layout_constraintLeft_toLeftOf="parent"
    app:layout_constraintTop_toTopOf="parent"
    app:layout_constraintVertical_bias="0.0" />

    <ImageView
    android:id="@+id/camera"
    android:layout_width="100dp"
    android:layout_height="92dp"
    android:layout_above="@+id/button"
    android:layout_alignParentEnd="true"
    android:layout_marginBottom="119dp"
    android:layout_marginEnd="31dp"
    app:layout_constraintBottom_toTopOf="@+id/textView2"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintStart_toEndOf="@+id/button"
    app:layout_constraintTop_toTopOf="parent"
    app:layout_constraintVertical_bias="0.0"
    app:srcCompat="@android:drawable/ic_menu_camera" />
    </RelativeLayout>

Java代码

    package com.chiragsharmaengineer.linked_layouts;

    import android.app.Activity;
    import android.content.Intent;
    import android.graphics.Bitmap;
    import android.os.Bundle;
    import android.provider.MediaStore;
    import android.view.View;
    import android.widget.Button;
    import android.widget.ImageView;



    public class newActivity extends Activity {

    final int CAMERA_PIC_REQUEST = 1888;

    @Override
    public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    //Get the view from new_activity.xml
    setContentView(R.layout.activity_new);

    //Camera
    Button camera = (Button) findViewById(R.id.button);
    camera.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {

            Intent cameraIntent = new 
        Intent(MediaStore.ACTION_IMAGE_CAPTURE);
            startActivityForResult(cameraIntent, CAMERA_PIC_REQUEST);

           }
         });

        }

        protected void onActivityResult(int requestCode, int resultCode, 
        Intent data) {
        if (requestCode == CAMERA_PIC_REQUEST) {
        Bitmap image = (Bitmap) data.getExtras().get("data");
        ImageView imageview = findViewById(R.id.camera); //sets imageview as 
        the bitmap
        imageview.setImageBitmap(image);

            }
          } 
        } 

ImageView 选项未显示在布局上,每当我单击相机按钮时,它只会打开以前的布局。应用程序没有崩溃,但实际上没有做任何事情。如果您能提供详细的解决方案,我将不胜感激。

最佳答案

试试这个

package com.chiragsharmaengineer.linked_layouts;

import android.app.Activity;
import android.content.Intent;
import android.graphics.Bitmap;
import android.os.Bundle;
import android.provider.MediaStore;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;



public class newActivity extends Activity {

final int CAMERA_PIC_REQUEST = 1888;
ImageView imageview ;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//Get the view from new_activity.xml
setContentView(R.layout.activity_new);

//Camera
 imageview = findViewById(R.id.camera); //sets imageview as 
Button camera = (Button) findViewById(R.id.button);
camera.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {

        Intent cameraIntent = new 
    Intent(MediaStore.ACTION_IMAGE_CAPTURE);
        startActivityForResult(cameraIntent, CAMERA_PIC_REQUEST);

       }
     });

    }

    @Override
   public void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
   if (requestCode == CAMERA_PIC_REQUEST ) {
    Bitmap image = (Bitmap) data.getExtras().get("data");
    imageview.setImageBitmap(image);
    } 
 }

关于java - 相机不工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48109079/

相关文章:

java - RMI 实例化远程对象

java - 使用 saxon 将 XdmValue 作为 XmlType 存储在数据库中的更好方法。

java - 在java中声明字符列表时出现语法错误

android - 有没有办法下载 GPS 年历?

android - StrictMode 策略违规 : android. os.StrictMode$StrictModeDiskReadViolation : policy=327711 violation=2 at Application super. onCreate

c++ - 代码在运行时崩溃,但在调试时不会崩溃

ios - 在 Swift 中调试时 Xcode 崩溃

AS 的 SQL 语法错误

java - 如何更改错误无法调用 Tomcat 管理器 : Server returned HTTP response code: 403

java - 使用 ImageView 打开新 Activity ?