关于android 聊天页面 类似泡泡包裹聊天内容的实现
包含内容: 源码,全套工具
作者QQ549710689
主页面就是一个listview:
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" > <RelativeLayout android:orientation="horizontal" android:layout_width="fill_parent" android:layout_height="wrap_content" android:id = "@+id/MessageBox" android:layout_alignParentBottom = "true" > <EditText android:layout_width = "200dip" android:layout_height = "50dip" android:layout_marginLeft = "50dip" android:text = "输入聊天内容" android:textSize="18dip" android:id = "@+id/MessageText" /> <Button android:layout_width = "wrap_content" android:layout_height = "50dip" android:layout_alignParentRight ="true" android:text ="发送" android:textSize="18dip" android:id = "@+id/MessageButton" /> </RelativeLayout> <ListView android:id="@+id/list" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_alignParentTop = "true" android:layout_above = "@+id/MessageBox" /> </RelativeLayout>
然后实现item,区分接收和自己发送
接收的item布局
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="horizontal" android:layout_marginLeft="10px" > <LinearLayout android:orientation="vertical" android:layout_width="249px" android:layout_height="wrap_content" android:background="@drawable/outgoing" > <LinearLayout android:orientation="horizontal" android:layout_width="fill_parent" android:layout_height="22dip" > <TextView android:id="@+id/messagedetail_row_name" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textColor="#000000" android:paddingTop="2px" android:textSize="16dip" /> <TextView android:id="@+id/messagedetail_row_date" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textColor="#000000" android:paddingTop="2px" android:textSize="16dip" android:layout_marginLeft="60dip" /> </LinearLayout> <TextView android:id="@+id/messagedetail_row_text" android:layout_width="fill_parent" android:layout_height="wrap_content" android:paddingLeft="2px" android:textColor="#0000DD" android:textSize="16dip" /> </LinearLayout> <ImageView android:layout_width="42px" android:layout_height="42px" android:layout_gravity="bottom" android:id="@+id/messagegedetail_rov_icon" android:background="@drawable/retouxiang" /> </LinearLayout>
自己发送item:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="horizontal" > <ImageView android:layout_width="42px" android:layout_height="42px" android:layout_gravity="bottom" android:id="@+id/messagegedetail_rov_icon" android:background="@drawable/retouxiang" /> <LinearLayout android:orientation="vertical" android:layout_width="249px" android:layout_height="wrap_content" android:background="@drawable/incoming" > <LinearLayout android:orientation="horizontal" android:layout_width="fill_parent" android:layout_height="22dip" > <TextView android:id="@+id/messagedetail_row_name" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textColor="#000000" android:paddingTop="2px" android:textSize="16dip" /> <TextView android:id="@+id/messagedetail_row_date" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textColor="#000000" android:paddingTop="2px" android:textSize="16dip" android:layout_marginLeft="60dip" /> </LinearLayout> <TextView android:id="@+id/messagedetail_row_text" android:layout_width="fill_parent" android:layout_height="wrap_content" android:paddingLeft="2px" android:textColor="#0000DD" android:textSize="16dip" /> </LinearLayout> </LinearLayout>
使用的切图是.9图片:
代码控制就是acticity中代码和编写的listview 适配器。详细实现请下载demo查看。