Как поделиться изображением, созданным QR, в Android Studio JavaAndroid

Форум для тех, кто программирует под Android
Ответить Пред. темаСлед. тема
Anonymous
 Как поделиться изображением, созданным QR, в Android Studio Java

Сообщение Anonymous »

Я пытаюсь поделиться своим QR-изображением, но когда я пытаюсь это сделать, изображение QR-кода не отображается в выбранном методе публикации:
Изображение
.
Я пытаюсь создать функцию, в которой при регистрации пользователя она будет генерировать QR-код и откройте его в диалоговом окне. Затем, когда пользователь нажимает кнопку ОК в диалоговом окне, он должен передать QR-код выбранному пользователем методу.
Я попробовал выполнить следующее: учебник на YouTube от Android Tutorials. Функция общего доступа работает, но не отображает сгенерированный QR-код в выбранном методе публикации изображения.

Код: Выделить всё

public void showQR() {
Dialog dialog = new Dialog(this);
dialog.setContentView(R.layout.cutome_dialog_layout);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
dialog.getWindow().setBackgroundDrawable(getDrawable(R.drawable.custom_dialog_background));
}
dialog.getWindow().setLayout(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);
dialog.setCancelable(false); //Optional
dialog.getWindow().getAttributes().windowAnimations = R.style.DialogAnimation; //Setting the animations to dialog

Button Okay = dialog.findViewById(R.id.btn_okay);
Button Cancel = dialog.findViewById(R.id.btn_cancel);
ImageView qr_image = dialog.findViewById(R.id.qrcode);

MultiFormatWriter multiFormatWriter = new MultiFormatWriter();

try {
BitMatrix bitMatrix = multiFormatWriter.encode(studentNumber.getText().toString()+ " ," +fullName.getText().toString(), BarcodeFormat.QR_CODE, 300, 300);

BarcodeEncoder barcodeEncoder = new BarcodeEncoder();
Bitmap bitmap = barcodeEncoder.createBitmap(bitMatrix);

qr_image.setImageBitmap(bitmap);

}
catch (WriterException e) {
throw new RuntimeException(e);
}

Okay.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {

try {
BitmapDrawable bitmapDrawable = (BitmapDrawable) qr_image.getDrawable();
Bitmap bitmap = bitmapDrawable.getBitmap();
shareImageAndText(bitmap);
} catch (Exception e) {
Toast.makeText(RegisterStudent.this, "share image problem", Toast.LENGTH_SHORT).show();
}
dialog.dismiss();
}
});

Cancel.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {

Toast.makeText(RegisterStudent.this, "Cancel", Toast.LENGTH_SHORT).show();
dialog.dismiss();
}
});

dialog.show();
}

private void shareImageAndText(Bitmap bitmap) {
Uri uri = getImageToShare(bitmap);

Intent intent = new Intent(Intent.ACTION_SEND);
intent.putExtra(Intent.EXTRA_STREAM, uri);
intent.putExtra(Intent.EXTRA_TEXT, "Please dont share your QR Code to anyone");
intent.putExtra(Intent.EXTRA_SUBJECT, "QR Code");
intent.setType("images/*");
startActivity(Intent.createChooser(intent, "Share via"));
}

private Uri getImageToShare(Bitmap bitmap) {
File folder = new File(getCacheDir(), "images");
Uri uri = null;
try {
folder.mkdirs();
File file = new File(folder, "image.jpg");
FileOutputStream fileOutputStream = new FileOutputStream(file);

bitmap.compress(Bitmap.CompressFormat.JPEG, 90, fileOutputStream);
fileOutputStream.flush();
fileOutputStream.close();

uri = FileProvider.getUriForFile(this, "com.example.myapplication", file);

} catch (Exception e) {
e.printStackTrace();
}
return uri;
}
Как я могу поделиться своим QR-кодом?
[img]https://i.sstatic .net/ZH6e1m.jpg[/img]
.

Подробнее здесь: https://stackoverflow.com/questions/777 ... tudio-java
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Android»