¿Cómo adjuntar una imagen de dibujable a gmail?
Estoy tratando de adjuntar una imagen de mi gridview a gmail o facebook, pero cada vez que intenté adjuntar mi aplicación se bloqueó, y recibo el siguiente error con excepción de puntero nulo, el siguiente es mi código con la selección de imagen de gridview, ¿alguien puede ayudarme?
public class Free_Cover_Activity extends AppCompatActivity
{
GridView grid;
int[] imageId = {
R.drawable.discovercover,
R.drawable.burpresswordfree,
R.drawable.flyfree,
R.drawable.cantmovefree,
R.drawable.cantmovewordfree,
R.drawable.chalkthisfree,
R.drawable.fivehundredmetersfree,
R.drawable.freeexercise,
R.drawable.gym_smilie,
R.drawable.hundredcalrairesfree,
R.drawable.injuryfree,
R.drawable.jumpropefree,
R.drawable.nicesnathcfree,
R.drawable.personglrecordfree,
R.drawable.posefree,
R.drawable.pushupfree,
R.drawable.shoulder,
R.drawable.timewordfree,
R.drawable.unbrokernfree,
R.drawable.weightbeltfree
};
private Bitmap mBitmap;
private Intent email;
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.free_cover_gridview);
android.support.v7.app.ActionBar abar = getSupportActionBar();
ColorDrawable colorDrawable = new ColorDrawable(Color.parseColor("#D64365"));
abar.setBackgroundDrawable(colorDrawable);
abar.hide();
CustomGridFreeCover adapter =
new CustomGridFreeCover(Free_Cover_Activity.this, imageId);
grid=(GridView)findViewById(R.id.freecover_grid);
grid.setAdapter(adapter);
grid.setOnItemClickListener(new AdapterView.OnItemClickListener()
{
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id)
{
try
{
Bitmap largeIcon =
BitmapFactory.decodeResource(getResources(), R.drawable.discovercover);
/*
replace "R.drawable.bubble_green" with the image resource
you want to share from drawable
*/
ByteArrayOutputStream bytes = new ByteArrayOutputStream();
largeIcon.compress(Bitmap.CompressFormat.JPEG, 40, bytes);
//you can create a new file name "test.jpg" in sdcard folder.
File f =
new File(Environment.getExternalStorageDirectory() + File.separator + "test.jpg");
f.createNewFile();
//write the bytes in file
FileOutputStream fo = new FileOutputStream(f);
fo.write(bytes.toByteArray());
//remember close de FileOutput
fo.close();
} catch (IOException e) {
//TODO Auto-generated catch block
e.printStackTrace();
}
Intent shareIntent = new Intent(android.content.Intent.ACTION_SEND);
shareIntent.setType("image/jpeg");
//set your subject
shareIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, "Hi");
//set your message
shareIntent.putExtra(android.content.Intent.EXTRA_TEXT, "How are you");
String imagePath = Environment.getExternalStorageDirectory()
+ File.separator + "test.jpg";
File imageFileToShare = new File(imagePath);
Uri uri = Uri.fromFile(imageFileToShare);
shareIntent.putExtra(Intent.EXTRA_STREAM, uri);
startActivity(Intent.createChooser(shareIntent, "Share Image"));
}
});
}
public class CustomGridFreeCover extends BaseAdapter
{
,private Context mContext;
//private final String[] web;
private final int[] Imageid;
public CustomGridFreeCover(Context c,int[] Imageid )
{
mContext = c;
this.Imageid = Imageid;
//this.web = web;
}
@Override
public int getCount()
{
//TODO Auto-generated method stub
return Imageid.length;
}
@Override
public Object getItem(int position) {
//TODO Auto-generated method stub
return null;
}
@Override
public long getItemId(int position) {
//TODO Auto-generated method stub
return 0;
}
@Override
public View getView(int position, View convertView, ViewGroup parent)
{
//TODO Auto-generated method stub
View grid;
LayoutInflater inflater = (LayoutInflater) mContext
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
if (convertView == null)
{
grid = new View(mContext);
grid = inflater.inflate(R.layout.free_cover_griditem, null);
//TextView textView = (TextView) grid.findViewById(R.id.grid_text);
ImageView imageView = (ImageView)grid.findViewById(R.id.grid_image_freecover);
//textView.setText(web[position]);
imageView.setImageResource(Imageid[position]);
} else {
grid = (View) convertView;
}
return grid;
}
}
}