Olá Senhores;
Gostaria de saber como converto imagem do drawable para o Bitmap e as compartilho:
Até agora chegue nisso:
Intent shareIntent = new Intent();
shareIntent.setAction(Intent.ACTION_SEND);
shareIntent.putExtra(Intent.EXTRA_STREAM, uriToImage);
shareIntent.setType(“image/jpeg”);
startActivity(Intent.createChooser(shareIntent, getResources().getText(R.string.send_to)));
Aí não consigo definir o URI:
Mas, nesse site:
1
É necessário salvar a imagem, para que se possa compartilhar:
Vamos lá:
- Permissão:
Em seu arquivo AndroidManifest.xml adicione a permissão para que possamos salvar a imagem no dispositivo:
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
- Permissões em tempo de execução:
A partir do Android 6.0 (nível de API 23), os usuários concedem permissões a aplicativos enquanto eles estão em execução, não quando eles são instalados.
Para isso adicione o seguinte método de código:
private static final int SOLICITAR_PERMISSAO = 1;
private void checarPermissao(){
// Verifica o estado da permissão de WRITE_EXTERNAL_STORAGE
int permissionCheck = ContextCompat.checkSelfPermission(this, android.Manifest.permission.WRITE_EXTERNAL_STORAGE);
if (permissionCheck != PackageManager.PERMISSION_GRANTED) {
// Se for diferente de PERMISSION_GRANTED, então vamos exibir a tela padrão
ActivityCompat.requestPermissions(this, new String[]{android.Manifest.permission.WRITE_EXTERNAL_STORAGE}, SOLICITAR_PERMISSAO);
} else {
// Senão vamos compartilhar a imagem
sharedImage();
}
}
- Compartilhar a imagem:
Agora, vamos salvar e compartilhar a imagem:
private void sharedImage(){
// Vamos carregar a imagem em um bitmap
Bitmap b = BitmapFactory.decodeResource(getResources(), R.mipmap.ic_launcher_round);
Intent share = new Intent(Intent.ACTION_SEND);
//setamos o tipo da imagem
share.setType("image/jpeg");
ByteArrayOutputStream bytes = new ByteArrayOutputStream();
// comprimomos a imagem
b.compress(Bitmap.CompressFormat.JPEG, 100, bytes);
// Gravamos a imagem
String path = MediaStore.Images.Media.insertImage(getContentResolver(), b, "Titulo da Imagem", null);
// criamos uam Uri com o endereço que a imagem foi salva
Uri imageUri = Uri.parse(path);
// Setmaos a Uri da imagem
share.putExtra(Intent.EXTRA_STREAM, imageUri);
// chama o compartilhamento
startActivity(Intent.createChooser(share, "Selecione"));
}
Assim deu Certo pro Rapaz , mas não estou conseguindo organizar no meu?
Alguém poderia condensar o código desde
public class MainActivity extends AppCompatActivity {
final int[] photos = {
R.drawable.abrir_a_boca,
R.drawable.adicao_de_quartos,
R.drawable.agarrado_firmemente,
R.drawable.agradeca,
R.drawable.alfaiate,
R.drawable.ancora,
}
compartilhar.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
shareImage();
}
private void shareImage() {
Intent shareIntent = new Intent();
shareIntent.setAction(Intent.ACTION_SEND);
shareIntent.putExtra(Intent.EXTRA_STREAM, "local do arquivo");
shareIntent.setType("image/jpeg");
startActivity(shareIntent);
}