有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java试图在Android上访问摄像头

所以我第一次在安卓工作室工作,我有一个非常重要的项目。我试图制作一个屏幕,显示一个摄像头(比如snapchat ui),上面有一些按钮,如下所示:

enter image description here

现在我正在编写以下代码:

package com.none.www.aarogya;

import 安卓.content.Intent;
import 安卓.graphics.Bitmap;
import 安卓.media.Image;
import 安卓.provider.MediaStore;
import 安卓.support.v7.app.AppCompatActivity;
import 安卓.os.Bundle;
import 安卓.view.View;
import 安卓.widget.ImageView;

public class HomeScreen extends AppCompatActivity {

    public static final int CAMERA_REQUEST = 10;
    private ImageView imgDumpCam;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_home_screen);

        imgDumpCam = findViewById(R.id.imgDumpCam);


        btnTake = h(View v); {
            Intent cameraIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
            startActivityForResult(cameraIntent, CAMERA_REQUEST);
        }

    @Override

    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        //If user choose okay than following code will work
        if(resultCode == RESULT_OK){
            if(requestCode == CAMERA_REQUEST){
                //we are hearing back from camera
            Bitmap cameraImage = (Bitmap) data.getExtras().get("data");
                // we get the image from the camera
            imgDumpCam .setImageBitmap(cameraImage);
            }
        }


    }
}
}

我发现以下错误:

Error:(24, 9) error: illegal start of expression
Error:(24, 16) error: illegal start of expression
Error:(24, 35) error: ')' expected
Error:(24, 37) error: illegal start of expression
Error:(24, 38) error: ';' expected
Error:(46, 1) error: class, interface, or enum expected
Error:Execution failed for task ':app:compileDebugJavaWithJavac'.
> Compilation failed; see the compiler error output for details.

你能帮我解决这些错误吗


共 (2) 个答案

  1. # 1 楼答案

    试着用这行代码从相机上获取图像

    首先,在menifest中添加摄像头权限。xml 并检查运行时权限

    然后添加这个代码

        login=findViewById(R.id.login);
        login.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                clickImageFromCamera();
            }
        });
    }
    
    public void clickImageFromCamera() {
           Intent camIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
    
            if (camIntent.resolveActivity(getPackageManager()) != null) {
                startActivityForResult(camIntent, REQUEST_CAMERA);
    
        }
    }
    /*on activity result */
    @Override
    public void onActivityResult(int requestCode, int resultCode, Intent data) {
        if (requestCode == REQUEST_CAMERA && resultCode == RESULT_OK) {
            if (data != null && data.getExtras() != null) {
    
            }
        }
    }
    

    我有这个代码是为你工作的。如果你在代码方面有任何问题,请评论我

  2. # 2 楼答案

    你说这句话是什么意思?如果你想在点击btnTake时拍摄照片,请执行以下操作

            import android.content.Intent;
            import android.graphics.Bitmap;
            import android.provider.MediaStore;
            import android.support.v7.app.AppCompatActivity;
            import android.os.Bundle;
            import android.view.View;
            import android.widget.Button;
            import android.widget.ImageView;
    
            public class HomeScreen extends AppCompatActivity {
    
                public static final int CAMERA_REQUEST = 10;
                private ImageView imgDumpCam;
    
                @Override
                protected void onCreate(Bundle savedInstanceState) {
                    super.onCreate(savedInstanceState);
                    setContentView(R.layout.activity_home_screen);
                    imgDumpCam = findViewById(R.id.imgDumpCam);
                    Button btnTake = findViewById(R.id.your_btn_take_id);
                    btnTake.setOnClickListener(new View.OnClickListener() {
                        @Override
                        public void onClick(View v) {
                            Intent cameraIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
                            startActivityForResult(cameraIntent, CAMERA_REQUEST);
                        }
                    });
                }
    
                @Override
                protected void onActivityResult(int requestCode, int resultCode, Intent data) {
                    super.onActivityResult(requestCode, resultCode, data);
                    //If user choose okay than following code will work
                    if (resultCode == RESULT_OK) {
                        if (requestCode == CAMERA_REQUEST) {
                            //we are hearing back from camera
                            Bitmap cameraImage = (Bitmap) data.getExtras().get("data");
                            // we get the image from the camera
                            imgDumpCam.setImageBitmap(cameraImage);
                        }
                    }
    
                }
            }