将imageView附加到电子邮件

时间:2014-05-21 04:42:16

标签: android imageview email-attachments

我想附加imageView以通过Android邮件服务发送。这就是我在活动A中从图库中获取图像的方式:

public class Activity A extends Activity {

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.my_gallery);

private static int RESULT_LOAD_IMAGE = 1;

Button viewcards=(Button)findViewById(R.id.viewcards);
viewcards.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {

Intent i = new Intent(Intent.ACTION_PICK, android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
startActivityForResult(i, RESULT_LOAD_IMAGE);

}});      
}

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data)
{
super.onActivityResult(requestCode, resultCode, data);

if (requestCode == RESULT_LOAD_IMAGE && resultCode == RESULT_OK && null != data)
{
Uri selectedImage = data.getData();
String[] filePathColumn =
{ MediaStore.Images.Media.DATA };

Cursor cursor = getContentResolver().query(selectedImage, filePathColumn, null, null, null);
cursor.moveToFirst();

int columnIndex = cursor.getColumnIndex(filePathColumn[0]);
String picturePath = cursor.getString(columnIndex);
cursor.close();

Intent newdata = new Intent(SavedCards.this, Cardd.class);
newdata.putExtra("picture_path", picturePath);
startActivity(newdata); 
}

}}

将图像传输到另一个类并将imageView放入活动B:

public class Activity B extends Activity {

private ImageView cardimage;

public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.carddd);

String temp = getIntent().getStringExtra("picture_path");
cardimage = (ImageView) findViewById(R.id.cardimage);
cardimage.setImageBitmap(BitmapFactory.decodeFile(temp));

在活动B中,我想通过onClick将此图像附加到电子邮件中。

txtsend=(TextView) findViewById(R.id.txtsend);
txtsend.setOnClickListener(new View.OnClickListener() {

@Override
public void onClick(View v) {



}
});

作为参考,图片如何附加电子邮件是here,但这是从图库中选择的。

如何通过已在imageView上设置的拍摄图像来执行此操作。谢谢。

2 个答案:

答案 0 :(得分:1)

在您的代码中,您将图像从活动B中的文件设置为ImageView。您知道此图片文件的路径。发送电子邮件时,只需附上此文件即可。

Uri uri = Uri.parse("file://" + attachmentFile); 
emailIntent.putExtra(Intent.EXTRA_STREAM, uri);

答案 1 :(得分:0)

您可以使用ImageView的getDrawable方法查看此http://developer.android.com/reference/android/widget/ImageView.html#getDrawable()

等等,

Bitmap imgViewBmp = ((BitmapDrawable)cardImage.getDrawable()).getBitmap();

应该工作。

PS:我建议你先查看你想要使用的任何课程的api参考文档。找到你想要的东西的机会非常高。接下来最好的事情就是实际谷歌你要解决的问题,如果那不起作用那么" rephrase"你的话,然后再试一次。您找到解决方案的可能性会增加一倍(如果不是更多)!