gpt4 book ai didi

android - 泡泡聊天布局

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:10:11 25 4
gpt4 key购买 nike

我有一个布局

<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代码中:

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 一样对齐,传出在,但现在所有消息都是对齐>

谢谢大家的建议

最佳答案

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/background"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
<!-- android:layout_gravity="left" -->
android:orientation="horizontal">

<ImageView
android:id="@+id/avatar"
android:layout_width="32dip"
android:layout_height="32dip"
android:layout_marginRight="4dip"
android:src="@drawable/controller"
/>

<TextView
android:id="@+id/text"
android:text="asd"
android:textColor="#FFFFFF"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="5sp"
/>

</LinearLayout>

在你的 Activity 中设置重力:

LinearLayout lp = (LinearLayout) findViewById(R.id.background);
lp.setGravity(Gravity.RIGHT);
lp.setGravity(Gravity.Left);

因此,我唯一更改的是在 XML 文件中的 LinearLayout 中,将 layout_widthfill_parent 更改为 wrap_content


编辑:(由于更多信息)

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/background"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:layout_gravity="left"
android:orientation="horizontal">


<RelativeLayout android:id="@+id/avatar2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_toRightOf="@id/text2">
<ImageView
android:id="@+id/avatar"
android:layout_width="32dip"
android:layout_height="32dip"
android:layout_marginRight="4dip"
android:src="@drawable/controller"
/>
</RelativeLayout>

<RelativeLayout android:id="@+id/text2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_toLeftOf="@id/avatar">
<TextView
android:id="@+id/text"
android:text="asd"
android:textColor="#FFFFFF"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>
</RelativeLayout>

</RelativeLayout>

所以,使用

RelativeLayout.LayoutParams params = (RelativeLayout.LayoutParams)yourLayout.getLayoutParams();
params.addRule(RelativeLayout.RIGHT_OF, R.id.id_to_be_left_of);
//params.addRule(RelativeLayout.LEFT_OF, R.id.id_to_be_left_of);
yourLayout.setLayoutParams(params); //causes layout update

不要忘记依赖不能是循环的

关于android - 泡泡聊天布局,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18122655/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com