我正在使用textview创建一个像CustomListview这样的聊天,而像这样创建每个帖子的Imageview:
<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的内容。只是传递源代码不起作用,因为如果有人发送另一张图片,它就会改变。
答案 0 :(得分:1)
您可以使用以下代码从ImageView获取位图: -
Bitmap bmap = Bitmap.createBitmap(imageView.getDrawingCache());
希望这有帮助。
答案 1 :(得分:0)
在共享之前,您需要将ImageView的内容保存到位图中,然后保存到文件中。如果您已在文件中包含内容,请使用文件URL而不是再次执行此操作。 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();
}
}
});
希望这有帮助。