Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

create a chatView layout in android

Tags:

I'm creating a chat application and I'm thinking on ways to create the actual chat view.

I already have the layout for the chat window itself but I was thinking about how to implement the chat messages.

I was thinking of creating a TableLayout and each row will be the users image and the chat message (or bubble or what not).

Does anyone have an idea on how to design and create these rows?

this is what I did up to now:

<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"     android:layout_width="match_parent"     android:layout_height="match_parent"     android:background="@android:color/background_light"     android:orientation="vertical"     android:weightSum="10" >      <ScrollView         android:layout_width="wrap_content"         android:layout_height="fill_parent"         android:layout_weight="1" >          <TableLayout             xmlns:android="http://schemas.android.com/apk/res/android"             android:layout_width="wrap_content"             android:layout_height="wrap_content"             android:stretchColumns="1" >              <TableRow                 android:id="@+id/tableRow1"                 android:layout_width="wrap_content"                 android:layout_height="wrap_content" >                  <!-- insert chat message here !-->              </TableRow>              <View                 android:layout_height="2dip"                 android:background="#000" />              <TableRow                 android:id="@+id/tableRow2"                 android:layout_width="wrap_content"                 android:layout_height="wrap_content" >                   <!-- next chat message --!>              </TableRow>         </TableLayout>     </ScrollView>      <LinearLayout         android:layout_width="match_parent"         android:layout_height="fill_parent"         android:layout_weight="9"         android:orientation="horizontal" >          <EditText             android:id="@+id/chatLine"             android:layout_width="fill_parent"             android:layout_height="wrap_content"             android:hint="Say:"             android:imeOptions="actionSend"             android:singleLine="true" />     </LinearLayout>  </LinearLayout> 


and I'm trying to achieve a this look the desired chat view
like image 635
thepoosh Avatar asked Jun 26 '12 07:06

thepoosh


1 Answers

How about below code -

Main.xml

<LinearLayout android:id="@+id/list_layout"     android:layout_height="fill_parent"      android:layout_width="fill_parent"     android:background="@drawable/background"     xmlns:android="http://schemas.android.com/apk/res/android">      <ListView android:id="@+id/myList"          android:layout_height="fill_parent"         android:layout_width="wrap_content"/>  </LinearLayout> 

list_row_layout_even.xml

<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"     android:id="@+id/even_container"     android:layout_width="fill_parent"      android:layout_height="wrap_content">      <ImageView android:id="@+id/user_img"         android:layout_height="wrap_content"          android:layout_width="wrap_content"         android:layout_marginTop="80dip"         android:src="@drawable/sample_image"/>      <ImageView android:id="@+id/even_bubble"         android:layout_height="wrap_content"          android:layout_width="wrap_content"         android:layout_alignParentRight="true"         android:layout_margin="5dip"         android:src="@drawable/even"/>      <TextView android:id="@+id/text"          android:layout_height="wrap_content"         android:layout_width="wrap_content"         android:layout_alignParentRight="true"         android:textColor="#000000"          android:textSize="16dip"         android:layout_marginRight="8dip"         android:layout_marginLeft="120dip"         android:layout_marginTop="10dip" />  </RelativeLayout> 

list_row_layout_odd.xml

<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"     android:id="@+id/even_container"     android:layout_width="fill_parent"      android:layout_height="wrap_content">      <ImageView android:id="@+id/user_img"         android:layout_height="wrap_content"          android:layout_width="wrap_content"         android:layout_marginTop="80dip"         android:layout_alignParentRight="true"         android:src="@drawable/sample_image"/>      <ImageView android:id="@+id/odd_bubble"         android:layout_height="wrap_content"          android:layout_width="wrap_content"         android:layout_alignParentLeft="true"         android:layout_margin="5dip"         android:src="@drawable/odd"/>      <TextView android:id="@+id/text"          android:layout_height="wrap_content"         android:layout_width="wrap_content"         android:layout_alignParentLeft="true"         android:textColor="#ffffff"          android:textSize="16dip"         android:layout_marginRight="120dip"         android:layout_marginLeft="8dip"         android:layout_marginTop="10dip" />  </RelativeLayout> 

This is my output -

Screenshot

Just Customize this example with your needs.

like image 100
Praveenkumar Avatar answered Sep 27 '22 21:09

Praveenkumar