Java 如何在聊天应用程序中单击发送图像?

Java 如何在聊天应用程序中单击发送图像?,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/

我有一个包括聊天的应用程序,我能够发送文本,但我想实现的是,每当我在gridview中单击其中一个图像时发送图像,因此每当我单击图像时,使用下面的代码,它会在聊天中显示文本,但它根本不会显示为图像,你能告诉我我需要做什么来实现这一点吗

smiles\u items\u layout.xml

<?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图像以及从何处获取的网格图像?