Java 如何在聊天应用程序中单击发送图像?
我有一个包括聊天的应用程序,我能够发送文本,但我想实现的是,每当我在gridview中单击其中一个图像时发送图像,因此每当我单击图像时,使用下面的代码,它会在聊天中显示文本,但它根本不会显示为图像,你能告诉我我需要做什么来实现这一点吗 smiles\u items\u layout.xmlJava 如何在聊天应用程序中单击发送图像?,java,android,Java,Android,我有一个包括聊天的应用程序,我能够发送文本,但我想实现的是,每当我在gridview中单击其中一个图像时发送图像,因此每当我单击图像时,使用下面的代码,它会在聊天中显示文本,但它根本不会显示为图像,你能告诉我我需要做什么来实现这一点吗 smiles\u items\u layout.xml <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="wrap_content"
android:layout_height="wrap_content">
<ImageView android:id="@+id/smile_image_view"
android:layout_width="45dp"
android:layout_height="45dp"
android:layout_gravity="center"/>
</LinearLayout>
BottomSheetDialog_Smiles.java
public class ImageAdapter2 extends BaseAdapter {
private Context mContext;
private final int[] mThumbIds;
String[] mThumbIdsString = null;
public ImageAdapter2(Context c, int[] mThumbIds , String[] mThumbIdsString)
{
mContext = c;
this.mThumbIds = mThumbIds;
this.mThumbIdsString = mThumbIdsString;
}
@Override
public int getCount() {
return mThumbIds.length & mThumbIdsString.length;
}
@Override
public Object getItem(int position) {
return position;
}
@Override
public long getItemId(int position) {
return position;
}
public class Holder {
ImageView img;
}
@Override
public View getView(final int position, final View convertView,
ViewGroup parent) {
final Holder holder = new Holder();
LayoutInflater inflater = (LayoutInflater)
getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
grid = inflater.inflate(R.layout.smiles_items_layout, null);
null);
holder.img = (ImageView) grid.findViewById(R.id.smile_image_view);
holder.img.setImageResource(mThumbIds[position]);
gridView2.setOnItemClickListener(new
AdapterView.OnItemClickListener() {
Drawable drawable;
@Override
public void onItemClick(AdapterView<?> adapterView, View view,
int i, long l) {
JSONDictionary imageChat = new JSONDictionary();
LinearLayout layout= (LinearLayout)view;
ImageView imageView = (ImageView) layout.getChildAt(0);
imageView.getDrawable();
imageChat.put("message", imageView);
Communicator.getInstance().emit("new chat message",
imageChat);
}
});
return grid;
}
}
我的声誉不到50,所以现在不能写评论,但你的问题不清楚,你想把图片发送到哪里??如果你有网格内图像的路径,你可以在任何你想要的地方使用它们 第二,您可以使用名为RecyclerView的新库,而不是使用BaseAdapter和默认列表,它更强大、更简单 更新 好的,这是更新后的代码
@Override
public View getView(final int position, final View convertView,
ViewGroup parent) {
final Holder holder = new Holder();
LayoutInflater inflater = (LayoutInflater)
getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
grid = inflater.inflate(R.layout.smiles_items_layout, null);
null);
holder.img = (ImageView) grid.findViewById(R.id.smile_image_view);
holder.img.setImageResource(mThumbIds[position]);
holder.img.settag(String.valueof(mThumbIds[position]))
gridView2.setOnItemClickListener(new
AdapterView.OnItemClickListener() {
Drawable drawable;
@Override
public void onItemClick(AdapterView<?> adapterView, View view,
int i, long l) {
JSONDictionary imageChat = new JSONDictionary();
LinearLayout layout= (LinearLayout)view;
ImageView imageView = (ImageView) layout.getChildAt(0);
imageView.getDrawable();
imageChat.put("message", imageView.gettag());
Communicator.getInstance().emit("new chat message",
imageChat);
}
});
return grid;
}
您的问题是您放置了imageview,因此文本实际上不是图像,而是图像的地址我想将图像发送到聊天室和服务器使用volley library查看此链接您可以将图像发送到服务器,如果您想在聊天室中使用图像,你必须有你的图像路径才能在任何你想要的地方使用它,比如你的聊天活动让我以更清晰的方式解释,所以我在gridview中单击一个图像,无论我单击的图像是什么,我希望它在聊天中发送,现在忘掉服务器吧,让我们按照你的意愿将图像发送到聊天室OK,让我们一步一步地解决你的问题,你有一个聊天活动,对吗?那么,如何转到gridView图像以及从何处获取的网格图像?