android - Bubble Chat layout -


i have layout

<linearlayout     xmlns:android="http://schemas.android.com/apk/res/android"     android:id="@+id/background"     android:layout_width="fill_parent"     android:layout_height="fill_parent"     android:orientation="horizontal"     android:background="@drawable/chat_bg">      <imageview         android:id="@+id/avatar"         android:layout_width="32dip"         android:layout_height="32dip"         android:layout_marginright="4dip"         android:src="@drawable/avatar_1_1"                 />      <textview         android:id="@+id/text"         android:layout_width="wrap_content"         android:layout_height="wrap_content"         android:layout_margin="5sp"         />  </linearlayout> 

and in java code have :

layoutparams lp1 = (layoutparams) textview.getlayoutparams();     layoutparams lp2 = (layoutparams) avatarview.getlayoutparams();     if (incoming) {         lp1.gravity = gravity.left;         lp2.gravity = gravity.left;         textview.setbackgroundresource(r.drawable.speech_bubble_green);         textview.setlayoutparams(lp1);         avatarview.setlayoutparams(lp2);     } else {         lp1.gravity = gravity.right;         lp2.gravity = gravity.right;         textview.setbackgroundresource(r.drawable.speech_bubble_orange);         textview.setlayoutparams(lp1);         avatarview.setlayoutparams(lp2);     } 

i want incomming message , avatar align right viber, outgoing on left, message align left

thanks suggestions

solution here

<relativelayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/background" android:layout_width="fill_parent" android:layout_height="wrap_content" android:paddingright="4dip" android:paddingbottom="4dip" android:background="@drawable/chat_bg">  <imageview     android:id="@+id/avatar"     android:layout_width="32dip"     android:layout_height="32dip"     android:layout_marginleft="4dip"     android:src="@drawable/avatar_1_1"     />  <textview     android:id="@+id/text"     android:layout_width="wrap_content"     android:layout_height="wrap_content"     android:layout_torightof="@id/avatar"     android:paddingleft="4dip"     /> 

and here java code :

relativelayout bg = (relativelayout)view.findviewbyid(r.id.background);                  if (incoming) {             textview.setbackgroundresource(r.drawable.speech_bubble_orange);              bg.setgravity(gravity.left);         } else {             textview.setbackgroundresource(r.drawable.speech_bubble_green);              layoutparams avatarparams = (layoutparams) avatarview.getlayoutparams();             avatarparams.addrule(relativelayout.align_parent_right);             avatarview.setlayoutparams(avatarparams);              /*android:layout_width="wrap_content"                     android:layout_height="wrap_content"                     android:layout_torightof="@id/avatar"                     android:paddingleft="4dip"*/             layoutparams tvparam = (layoutparams) textview.getlayoutparams();             tvparam.removerule(relativelayout.right_of);             tvparam.addrule(relativelayout.left_of, r.id.avatar);             textview.setlayoutparams(tvparam);              bg.setgravity(gravity.right);         } 

Comments

Popular posts from this blog

matlab - Deleting rows with specific rules -

php - MySQLi multi_query results for later use -