通过按钮点击从我的应用程序中调用相机

时间:2017-11-02 12:28:36

标签: android camera invoke

全新的Android和Android开发,如果可能的话,寻求一些帮助。我正在开发我的第一个Android应用程序并且编码经验非常少......我基本上有一个应用程序,允许我在sqlite数据库中添加/删除/更新用户。我正在寻找一种方法只是在主页面上添加一个按钮,允许我访问相机并拍照。主要活动只是一个包含添加/删除按钮等的页面:

public class MainActivity extends AppCompatActivity {

private static final String TAG = "MainActivity";

DatabaseHelper mDatabaseHelper;
private Button btnAdd, btnViewData;
private EditText editText;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    editText = (EditText) findViewById(R.id.editText);
    btnAdd = (Button) findViewById(R.id.btnAdd);
    btnViewData = (Button) findViewById(R.id.btnView);
    mDatabaseHelper = new DatabaseHelper(this);

    btnAdd.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            String newEntry = editText.getText().toString();
            if (editText.length() != 0) {
                AddData(newEntry);
                editText.setText("");
            } else {
                toastMessage("Please enter a name!");
            }

        }
    });

    btnViewData.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Intent intent = new Intent(MainActivity.this, ListDataActivity.class);
            startActivity(intent);
        }
    });

}

public void AddData(String newEntry) {
    boolean insertData = mDatabaseHelper.addData(newEntry);

    if (insertData) {
        toastMessage("User Added!");
    } else {
        toastMessage("Something went wrong");
    }
}

/**
 * customizable toast
 * @param message
 */
private void toastMessage(String message){
    Toast.makeText(this,message, Toast.LENGTH_SHORT).show();




}
}

我实现相机的代码如下所示(它适用于调用相机和拍照,但仅适用于应用程序外的相机)

我可以只在主活动页面上的一个按钮,让我能够拍摄照片"来自申请表

(调用相机的代码)

public class MainActivity extends AppCompatActivity {

public void getPhoto() {
    Intent intent = new Intent(Intent.ACTION_PICK, MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
    startActivityForResult(intent, 1);
}

@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
    super.onRequestPermissionsResult(requestCode, permissions, grantResults);

    if (requestCode == 1) {


        if (grantResults.length > 0 && grantResults[0] == PackageManager. PERMISSION_GRANTED){

            getPhoto();

        }
    }
}

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

    if (checkSelfPermission(Manifest.permission.READ_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) {

        requestPermissions(new String[]{Manifest.permission.READ_EXTERNAL_STORAGE}, 1);

    } else{

        getPhoto();
    }




}

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


    if (requestCode == 1 && resultCode == RESULT_OK && data != null) {

        try {
            Uri selectedImage = data.getData();

            Bitmap bitmap = MediaStore.Images.Media.getBitmap(this.getContentResolver(), selectedImage);

            ImageView imageView = (ImageView) findViewById(R.id.imageView);
            imageView.setImageBitmap(bitmap);

        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}
}

很抱歉,如果这个问题看起来很愚蠢,对Android开发来说是全新的,而且对编码很新,所以我很不确定。

1 个答案:

答案 0 :(得分:0)

我不确定你在寻找什么,但这里有代码来拍照: https://developer.android.com/training/camera/photobasics.html

要添加按钮,您需要在布局中添加它,然后使用findViewById方法在活动类中获取引用

希望这个帮助