2013-05-07 43 views
1
分享

我創建像CustomListview的聊天與一個TextView並和ImageView的每篇文章這樣的:獲取內容從ImageView的在CustomListViewAdapter通過Facebook

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" > 

    <TextView 
     android:id="@+id/text" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:textIsSelectable="true" /> 

    <ImageView 
     android:id="@+id/image" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:src="@drawable/ic_launcher" /> 

</LinearLayout> 

如果有人給它在ImageView的顯示的影像。現在我想實現這個功能來點擊Imageview並獲取內容在Facebook上分享。所以基本問題是如何通過點擊獲取Imageview的內容。只是通過源代碼不起作用,因爲如果有人發送另一張圖片它會改變。

回答

1

您可以使用此代碼的ImageView得到位圖: -

Bitmap bmap = Bitmap.createBitmap(imageView.getDrawingCache()); 

希望這有助於。

+0

Thx這也有幫助,但主要是這幫助http://stackoverflow.com/questions/4181994/help-regarding-onclick-event-on-an-item-of-listview-custom-row-layout – user2359459 2013-05-08 10:01:24

0

在分享之前,您需要將ImageView的內容保存到位圖中,然後保存到文件中。如果您已經擁有文件中的內容,請使用文件網址,而不是再次進行。 android.content.Intent.ACTION_SEND將顯示手機上將接收該類型消息的所有選項(在本例中爲image/*)。

imageView.setOnClickListener(new onClickListener() { 
    public void onClick(View view) { 
     ImageView imageView = (ImageView) view; 
     BitmapDrawable bitmapDrawable = (BitmapDrawable)imageView.getDrawable(); 
     Bitmap bitmap = bitmapDrawable.getBitmap(); 

     // Save this bitmap to a file. 
     File cacheDir = this.getExternalCacheDir(); 
     File downloadingMediaFile = new File(cacheDir, "abc.png"); 
     try { 
      FileOutputStream out = new FileOutputStream(downloadingMediaFile); 
      bitmap.compress(Bitmap.CompressFormat.PNG, 100, out); 
      out.flush(); 
      out.close(); 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } 

     // Now send it out to share 
     Intent share = new Intent(android.content.Intent.ACTION_SEND); 
     share.setType("image/*"); 
     share.putExtra(Intent.EXTRA_STREAM, Uri.parse("file://" + downloadingMediaFile)); 
     try { 
      startActivity(Intent.createChooser(share, "Send Image.")); 
     } catch (Exception ex) { 
      ex.printStackTrace(); 
     } 
    } 
}); 

希望這會有所幫助。