1. java
  2. android
  3. c#
  4. .net
  5. javascript
  6. php
  7. jquery
  8. html
  9. sql

Compartilhar imagem gerada

Ola, a todos, sou novo no fórum mais sempre que posso acompanho alguns tópicos,

Tenho uma aplicação Android onde ela gera um bitmap e gostaria de compartilhar esse bitmap via whats ou email porem venho quebrando cabeça se alguém puder me ajudar ficaria mt grato,

segue código Java classe onde coloquei o código

package br.com.codeapp.kcode;

import android.content.Intent; import android.graphics.Bitmap; import android.graphics.drawable.BitmapDrawable; import android.net.Uri; import android.os.Bundle; import android.provider.MediaStore; import android.support.design.widget.FloatingActionButton; import android.support.design.widget.Snackbar; import android.support.v4.view.MenuItemCompat; import android.support.v7.app.AppCompatActivity; import android.support.v7.widget.Toolbar; import android.view.View; import android.view.Menu; import android.view.MenuItem; import android.widget.Button; import android.widget.EditText; import android.widget.ImageView; import android.widget.ShareActionProvider; import android.widget.Toast;

import com.google.zxing.BarcodeFormat; import com.google.zxing.MultiFormatWriter; import com.google.zxing.WriterException; import com.google.zxing.common.BitMatrix; import com.journeyapps.barcodescanner.BarcodeEncoder;

import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.File; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException;

public class Main2Activity extends AppCompatActivity {

private ImageView imageView; private ShareActionProvider shareActionProvider;

EditText edtTexto; Button btnGerar; ImageView ivQRCode;

@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main2); // compartilhando inicio// imageView = (ImageView) this.findViewById(R.id.ivQRCode);

// compartilhando fim//

Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); setSupportActionBar(toolbar);

inicializarComponentes(); clickButton();

FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab); fab.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG) .setAction("Action", null).show(); } }); }

private void clickButton() {

btnGerar.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { gerarQRCode(); } });

}

private void gerarQRCode() {

String texto = edtTexto.getText().toString(); MultiFormatWriter multiFormatWriter = new MultiFormatWriter();

try {

BitMatrix bitmatrix = multiFormatWriter.encode(texto , BarcodeFormat.QR_CODE ,2000 ,2000 ); BarcodeEncoder barcodeEncoder = new BarcodeEncoder(); Bitmap bitmap = barcodeEncoder.createBitmap(bitmatrix); ivQRCode.setImageBitmap(bitmap); }catch (WriterException e){

e.printStackTrace();

} }

private void inicializarComponentes() {

edtTexto = (EditText) findViewById(R.id.editText); btnGerar = (Button) findViewById(R.id.btnGerar); ivQRCode = (ImageView) findViewById(R.id.ivQRCode);

}

@Override public boolean onCreateOptionsMenu(Menu menu) {

// super.onCreateOptionsMenu(menu); // menu.add(0,1,0,"Share").setIcon(android.R.drawable.ic_menu_share).setOnMenuItemClickListener(new MenuItem.OnMenuItemClickListener() { // @Override // public boolean onMenuItemClick(MenuItem item) { // share(((BitmapDrawable)ivQRCode.getDrawable()).getBitmap()); // return false; // } // }).setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM); // return true;

// compartilhamento texto parte 1 //

getMenuInflater().inflate(R.menu.menu_main,menu); MenuItem menuItem = menu.findItem(R.id.action_share); mShareActionProvider = (android.support.v7.widget.ShareActionProvider) MenuItemCompat.getActionProvider(menuItem); setShareActionIntent("teste"); return super.onCreateOptionsMenu(menu);

}

@Override public boolean onOptionsItemSelected(MenuItem item) { // Handle action bar item clicks here. The action bar will // automatically handle clicks on the Home/Up button, so long // as you specify a parent activity in AndroidManifest.xml. int id = item.getItemId();

//noinspection SimplifiableIfStatement if (id == R.id.action_settings) { return true; }

return super.onOptionsItemSelected(item); }

private android.support.v7.widget.ShareActionProvider mShareActionProvider;

// compartilhamento texto parte 2//

private void setShareActionIntent(String your_message) { Intent intent = new Intent(Intent.ACTION_SEND); intent.setType("text/plain"); intent.putExtra(Intent.EXTRA_TEXT,your_message); mShareActionProvider.setShareIntent(intent); }

// teste compartilhamento imagem//

private void compartilhar(){

if (imageView.getDrawable() != null){

Intent intent = new Intent(Intent.ACTION_SEND); intent.setType("image/jpeg"); BitmapDrawable drawable =(BitmapDrawable) imageView.getDrawable(); Bitmap bitmap = drawable.getBitmap(); ByteArrayOutputStream Bytes = new ByteArrayOutputStream(); bitmap.compress(Bitmap.CompressFormat.JPEG, 100,Bytes ); String path = MediaStore.Images.Media.insertImage(getContentResolver(),bitmap,"imagem", null); Uri uri = Uri.parse(path); intent.putExtra(Intent.EXTRA_STREAM,uri); startActivity(Intent.createChooser(intent, "compartilhar"));

}else{

Toast.makeText(getBaseContext(),"Não possui ",Toast.LENGTH_LONG).show(); }

}

// private void share(Bitmap bitmap){ // Intent shareIntent = new Intent(Intent.ACTION_SEND); // shareIntent.setType("image/jpeg"); // try{ // File cache = getApplicationContext().getExternalCacheDir(); // File shareFile = new File(cache,"example.png"); // FileOutputStream out = new FileOutputStream(shareFile); // bitmap.compress(Bitmap.CompressFormat.PNG,100,out); // out.flush(); // out.close(); /// shareIntent.putExtra(Intent.EXTRA_STREAM, Uri.parse("file://"+shareFile)); // startActivity(Intent.createChooser(shareIntent,"Share")); //} catch (FileNotFoundException e) { // e.printStackTrace(); // } catch (IOException e) { // e.printStackTrace(); // } // }

}

  1. Você vai ver essas setas em qualquer página de pergunta. Com elas, você pode dizer se uma pergunta ou uma resposta foram relevantes ou não.
  2. Edite sua pergunta ou resposta caso queira alterar ou adicionar detalhes.
  3. Caso haja alguma dúvida sobre a pergunta, adicione um comentário. O espaço de respostas deve ser utilizado apenas para responder a pergunta.
  4. Se o autor da pergunta marcar uma resposta como solucionada, esta marca aparecerá.
  5. Clique aqui para mais detalhes sobre o funcionamento do GUJ!

0 resposta

Não é a resposta que estava procurando? Procure outras perguntas com as tags android ou faça a sua própria pergunta.