我正在制作聊天应用程序,但我遇到了一些问题。
这是我的聊天活动的样子,以下是代码:
chat.xml
<?xml version="1.0" encoding="utf-8"?>
<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:id="@+id/lvMessageHistory"
android:layout_width="match_parent"
android:layout_height="0px"
android:layout_weight="1"/>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content" >
<EditText
android:id="@+id/etMessage"
android:inputType="text"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="top"
android:layout_weight="1"/>
<Button
android:id="@+id/btnSend"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="4"
android:text="@string/send"/>
</LinearLayout>
</LinearLayout>
chat_cell.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/chatMessageLayout"
android:orientation="vertical"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="right">
<TextView
android:id="@+id/tvUser"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/send"
android:textStyle="bold"/>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<TextView
android:id="@+id/tvMessage"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
<TextView
android:id="@+id/tvTime"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
</LinearLayout>
</LinearLayout>
现在我想要的是气泡更小,即只是将文字包裹在其中,同时具有全宽度以基于发送者将其重力设置为左或右。
我做错了什么?
编辑:我正在以编程方式在chatMessageLayout上设置背景。
LinearLayout chatMessageLayout = (LinearLayout) convertView.findViewById(R.id.chatMessageLayout);
if (position % 2 == 0) {
chatMessageLayout.setBackgroundResource(R.drawable.bubble_right);
} else {
chatMessageLayout.setBackgroundResource(R.drawable.bubble_left);
}
我正在使用9补丁图片。