Я могу создать приложение для Android, чтобы сфотографировать, а затем загрузить в базу данных

Я хочу создать приложение для Android, чтобы сделать снимок, тогда мы можем сделать некоторые комментарии с редактировать текстовый вид и когда я нажимаю кнопку отправки, изображение и комментарий появляются в базе данных (поэтому мы можем использовать ноутбук, чтобы увидеть результаты базы данных)

-1

Решение

Вот как вы делаете снимок, а затем загружаете его в представление изображений:

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) {

Uri selectedImage = data.getData();

try {

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

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

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

}

}

Чтобы сохранить его в базе данных, проверьте этот.

0

Другие решения

Вы можете использовать следующий код для захвата изображения:

public void captureImage() {
if (ActivityCompat.checkSelfPermission(this, android.Manifest.permission.CAMERA) != PackageManager.PERMISSION_GRANTED) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
requestPermissions(new String[]{
android.Manifest.permission.CAMERA
}, 6);
}
return;
}
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
if (intent.resolveActivity(getPackageManager()) != null) {
startActivityForResult(intent, CAMERA_REQUEST_CODE);
}
}

@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
switch (requestCode) {
case 6:
if (grantResults[0] == PackageManager.PERMISSION_GRANTED) {
captureImage();
}
}
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
uploading.show();
if (requestCode == CAMERA_REQUEST_CODE && resultCode == RESULT_OK) {
bitmap = (Bitmap) data.getExtras().get("data");
} else if (requestCode == GALLERY_INTENT && resultCode == RESULT_OK) {
try {
bitmap = MediaStore.Images.Media.getBitmap(getContentResolver(), data.getData());
} catch (IOException e) {
e.printStackTrace();
}
}
if (bitmap != null) {
toStringImage(bitmap);    //this function will convert image into Base64 string
} else {
uploading.dismiss();
}
}

Проверьте тот же код на GitHub по адресу:
captureImage

Теперь, чтобы загрузить это изображение в базу данных:

  1. Конвертировать захваченное изображение в Base64 строка. (imageToString)
  2. Отправить это Base64 Строка к вашему PHP веб-сервисы используя вашу любимую библиотеку.
  3. В конце, конвертировать Base64 вернитесь к образ и сохранить изображение в базе данных.
  4. хранить место нахождения (полный путь или ссылка) изображения в базе данных MySQL для получения изображения в будущем.

Проверьте этот ответ как загрузить изображение в базу данных.

0

По вопросам рекламы [email protected]