泡泡聊天室布局 [英] Bubble Chat 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>
和在java code我有:
and in the java code i 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);
}
我要进来的消息,其头像将对齐的右键像Viber的,外向的离开,但所有的消息现在是对齐的离开
I want the incomming message and its avatar will be align right like Viber, outgoing on the left, but all message now is align left
感谢所有的建议
推荐答案
这里的解决方案
<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"
/>
和java的在这里code:
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);
}
这篇关于泡泡聊天室布局的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文