给聊天界面加头像

代码:
主布局******

<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"><LinearLayout
        xmlns:android="http://schemas.android.com/apk/res/android"android:orientation="vertical"android:layout_width="match_parent"android:layout_height="match_parent"><ListView
            android:layout_width="match_parent"android:layout_height="0dp"android:layout_weight="1"android:id="@+id/listView_chat"android:divider="#0000">ListView><LinearLayout
            android:layout_width="match_parent"android:layout_height="wrap_content"android:id="@+id/layout"android:orientation="horizontal"><EditText
                android:layout_width="0dp"android:layout_height="wrap_content"android:id="@+id/editText_chat"android:hint="请在此输入内容"android:layout_weight="1" /><Button
                android:layout_width="wrap_content"android:layout_height="wrap_content"android:id="@+id/send_button"android:text="发送"/>LinearLayout>LinearLayout>
LinearLayout>

实体类******

public class Chat {//定义内容和消息类型String content;int type;int leftImageId;int rightImageId;//消息类型有两种static final int send=0;//如果不定义成static final则在活动中找不到这个变量static final int receive=1;//构造函数public Chat(String content, int type, int leftImageId, int rightImageId) {this.content = content;this.type = type;this.leftImageId = leftImageId;this.rightImageId = rightImageId;}public String getContent() {return content;}public int getType() {return type;}
}

子项布局****

<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"android:orientation="vertical"android:layout_width="match_parent"android:layout_height="wrap_content"><LinearLayout
        android:layout_width="wrap_content"android:layout_height="wrap_content"android:id="@+id/leftLayout"android:layout_margin="5dp"><ImageView
            android:layout_width="wrap_content"android:layout_height="wrap_content"android:src="@drawable/nh44x44"android:layout_gravity="center"android:paddingLeft="8dp"android:id="@+id/leftImage"/><LinearLayout
            android:layout_width="wrap_content"android:layout_height="wrap_content"android:background="@drawable/qp0218"android:layout_marginLeft="15dp"><TextView
                android:layout_width="wrap_content"android:layout_height="wrap_content"android:id="@+id/leftText"android:gravity="center"/>LinearLayout>LinearLayout><LinearLayout
        android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_gravity="right"android:id="@+id/rightLayout"android:layout_margin="5dp"><LinearLayout
            android:layout_width="wrap_content"android:layout_height="wrap_content"android:background="@drawable/qphy"android:layout_marginRight="15dp"android:layout_gravity="right"><TextView
                android:layout_width="match_parent"android:layout_height="wrap_content"android:id="@+id/rightText"android:gravity="center"/>LinearLayout><ImageView
            android:layout_width="wrap_content"android:layout_height="wrap_content"android:src="@drawable/qq44"android:layout_gravity="center"android:paddingRight="8dp"android:id="@+id/rightImage"/>LinearLayout>LinearLayout>

适配器**************

public class ChatAdapter extends ArrayAdapter{int resource;public ChatAdapter(Context context,  int textViewResourceId, List objects) {super(context, textViewResourceId, objects);resource=textViewResourceId;}//内部类,用于保存创建的实例
    class NeiBuLei{LinearLayout leftLayout;LinearLayout rightLayout;ImageView leftImage;ImageView rightImage;TextView leftText;TextView rightText;}@Overridepublic View getView(int position, View convertView, ViewGroup parent) {Chat chat= (Chat) getItem(position);View view;NeiBuLei neiBuLei;//加载布局,保存实例if (convertView==null){view= LayoutInflater.from(getContext()).inflate(resource,null);neiBuLei=new NeiBuLei();//内部类在此初始化neiBuLei.leftLayout=(LinearLayout)view.findViewById(R.id.leftLayout);neiBuLei.rightLayout=(LinearLayout)view.findViewById(R.id.rightLayout);neiBuLei.leftImage=(ImageView)view.findViewById(R.id.leftImage);neiBuLei.rightImage=(ImageView)view.findViewById(R.id.rightImage);neiBuLei.leftText=(TextView)view.findViewById(R.id.leftText);neiBuLei.rightText=(TextView)view.findViewById(R.id.rightText);view.setTag(neiBuLei);}else {view=convertView;neiBuLei= (NeiBuLei) view.getTag();}if (chat.getType()==chat.send){neiBuLei.leftLayout.setVisibility(View.GONE);neiBuLei.rightLayout.setVisibility(View.VISIBLE);neiBuLei.rightText.setText(chat.getContent());}if (chat.getType()==chat.receive){neiBuLei.rightLayout.setVisibility(View.GONE);neiBuLei.leftLayout.setVisibility(View.VISIBLE);neiBuLei.leftText.setText(chat.getContent());}return view;}
}

主活动******

public class MainActivity extends AppCompatActivity {List chatList=new ArrayList();void initChat(){Chat chat1=new Chat("你好!",Chat.send,R.drawable.nh44x44,R.drawable.qq44);Chat chat2=new Chat("你好!",Chat.receive,R.drawable.nh44x44,R.drawable.qq44);chatList.add(chat1);chatList.add(chat2);}@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);initChat();final ChatAdapter adapter;adapter=new ChatAdapter(MainActivity.this,R.layout.chat_item_layout,chatList);final ListView listView=(ListView)findViewById(R.id.listView_chat);//之前的所有都是为了这句话listView.setAdapter(adapter);//发送消息部分final EditText editText=(EditText)findViewById(R.id.editText_chat);Button button=(Button)findViewById(R.id.send_button);button.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {String string=editText.getText().toString();if (!"".equals(string)){Chat chat=new Chat(string,Chat.send,R.drawable.nh44x44,R.drawable.qq44);chatList.add(chat);adapter.notifyDataSetChanged();//更新ListeditText.setText("");//自动回复Chat chat1=new Chat("你输入的内容是“"+string+"”,请继续探索。",Chat.receive,R.drawable.nh44x44,R.drawable.qq44);chatList.add(chat1);listView.setSelection(chatList.size());//保证跳到最后一行}else {Chat chat1=new Chat("不可以发空消息哦!",Chat.receive,R.drawable.nh44x44,R.drawable.qq44);chatList.add(chat1);adapter.notifyDataSetChanged();//更新ListViewlistView.setSelection(chatList.size());}}});}
}//MainActivity


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部