2014-05-21 218 views
1

我想附加imageView以通過Android郵件服務發送。這是我得到的圖像從畫廊活動答:將imageView附加到電子郵件

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上設置的拍攝圖像來完成此操作。謝謝。

+0

可能重複[獲取連接到ImageView的位圖(http://stackoverflow.com/questions/8306623/get-bitmap-attached-to-imageview) – ranjk89

+0

我的問題不是如何檢索圖像。我想通過電子郵件發送附件。謝謝。 – Umitk

回答

1

在您的代碼中,您將圖像從Activity B中的文件設置爲ImageView,並知道該圖片文件的路徑。當你發送電子郵件只需附加這個文件。的

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

這樣的想法解決了我的問題。需要一些小的補充,但使用這種邏輯。謝謝。 – Umitk

0

可以使用的ImageView getDrawable方法參見本http://developer.android.com/reference/android/widget/ImageView.html#getDrawable()

因此,像,

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

應該工作。 PS:我建議你首先檢查你想使用的任何類的api參考文檔。有機會找到你正在尋找的是相當高的。接下來最好的事情是實際上谷歌你想解決,如果這不起作用,然後「重新措辭」你的話,並再次嘗試。你會發現你的解決方案的機會是後者的兩倍(如果不是更多)!