如何创建聊天视图?

时间:2015-07-16 04:10:03

标签: android chat android-xml

我是Android工作室的新手,所以如果我的问题很愚蠢,请原谅。我正在尝试创建一个看起来像这样的聊天窗口。 http://i.imgur.com/jMGUInr.png但是我被困在实际的聊天部分。我将如何创建聊天窗口本身意味着如何创建显示包含将在聊天窗口中显示的消息的块。这是我的代码。我假设所有代码都会出现在listview部分。

android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".MainActivity"
android:weightSum="1">
<LinearLayout

    android:layout_marginTop="0dp"
    android:id="@+id/LinearLayout02"
    android:layout_height="wrap_content"
    android:layout_width="fill_parent">


    <ImageButton
        android:id="@+id/homeBTN"
        android:background="#000000"
        android:layout_width="wrap_content"
        android:layout_height="fill_parent"
        android:layout_weight="1"
        android:src="@drawable/homebtnunpressed"
        android:scaleType="fitXY"/>

    <View android:layout_width="3dp"
        android:layout_height="50dp"
        android:background="@android:color/black" />

    <ImageButton
        android:id="@+id/updBTN"
        android:background="#000000"
        android:layout_width="wrap_content"
        android:layout_height="fill_parent"
        android:layout_weight="1"
        android:src="@drawable/settingsbtnunpressed"
        android:scaleType="fitXY"/>

</LinearLayout>

<LinearLayout
    android:layout_marginTop="0dp"
    android:id="@+id/LinearLayout03"
    android:layout_height="wrap_content"
    android:layout_width="fill_parent">

    <TextView
        android:layout_width="350dp"
        android:layout_height="fill_parent"
        android:textAppearance="?android:attr/textAppearanceLarge"
        android:background="#-3355444"
        android:text="YOU WERE MATCHED ON"
        android:layout_weight="1"
        android:id="@+id/matchedonTV />


    <View android:layout_width="3dp"
    android:layout_height="50dp"
    android:background="@android:color/black" />

    <Button
        android:layout_width="170dp"
        android:layout_height="70dp"
        android:text="Exit"
        android:id="@+id/exitBTN"
        android:layout_weight="1"
        android:layout_gravity="right" />

</LinearLayout>

<ListView
    android:layout_width="match_parent"
    android:layout_height="366dp"
    android:id="@+id/listView"
    android:layout_weight="0.33" />



<LinearLayout

    android:layout_marginBottom="0dp"
    android:id="@+id/LinearLayout02"
    android:layout_height="wrap_content"
    android:layout_width="366dp">


    <EditText
        android:layout_width="match_parent"
        android:layout_height="70dp"
        android:inputType="textMultiLine"
        android:ems="10"
        android:background="#-3355444"
        android:layout_weight="1"
        android:id="@+id/editText" />


    <View android:layout_width="3dp"
        android:layout_height="50dp"
        android:background="@android:color/black" />

    <Button
        android:layout_width="170dp"
        android:layout_height="70dp"
        android:text="Send"
        android:id="@+id/sendBTN"
        android:layout_weight="1"
        android:layout_gravity="right" />

</LinearLayout>

如果我不清楚,请告诉我。

1 个答案:

答案 0 :(得分:0)

对于任何聊天视图,您必须有一个列表视图。在此列表视图的适配器中,您签出收到或发送的消息,根据此在public void getView()中添加视图。例如:如果您知道消息是收到给用户然后膨胀收到的其他膨胀视图send.and如果您使用阵列适配器然后

@Override
public int getItemViewType(int position) {
    if (getItem(position).getType() == Message.TYPE_STATUS) {
        return STATUS;
    } else if (getItem(position).getStatus() <= Message.STATUS_RECEIVED) {
        return RECEIVED;
    } else {
        return SENT;
    }
}

此代码可以帮助您。对于视图的膨胀,您现在必须在xml文件上有两个布局文件。