Android:如何更改放置在动态创建的布局中的 ImageButton 的重力

Android: How to change the gravity of an ImageButton placed into a dynamically created layouts

我有一个主要动态生成的 LinearLayout 包含 4 个项目: - A TextView(动态width) - 一个 ImageView(静态 width) - A TextView(动态width) - 一个 ImageButton(静态 width

前 3 个项目应该粘在一起,最后一个项目应该浮动在屏幕右侧。

Name - Rating starts - Number of reviews................. Gmap icon 

当前:

预期:

我找到了一个解决方案,计算生成的项目的宽度,然后使用该值来设置包含项目 2 和项目 3 的 layout 的宽度。

您可以尝试添加线性布局而不是您的 "Gmap icon" 并给他以下设置

LinearLayout layout = new LinearLayout(this);
layout.setOrientation(LinearLayout.HORIZONTAL);

layout.setLayoutParams(new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.MATCH_PARENT));
layout.setGravity(Gravity.RIGHT);

然后把你的按钮放在这个 linearLayout

layout.addView(myImgButton);
<LinearLayout
android:layout_width="match_parent"
android:layout_height="50sp"
android:orientation="horizontal"
android:weightSum="3"
>
<TextView
    android:layout_width="0sp"
    android:layout_height="50sp"
    android:layout_weight="0.5"
    android:text="Bussiness 1"
    android:gravity="center"
    android:background="#000"
    android:textColor="#FF0000"
    android:textSize="18sp"
    />
<LinearLayout
    android:layout_width="0sp"
    android:layout_height="50sp"
    android:layout_weight="0.7"
    android:background="#0000FF"
    >
    <ImageView
        android:layout_width="20sp"
        android:layout_height="20sp"
        android:layout_gravity="center|center_horizontal"
        android:layout_margin="3sp"
        android:src="@drawable/star"
        />
    <ImageView
        android:layout_width="20sp"
        android:layout_height="20sp"
        android:layout_gravity="center|center_horizontal"
        android:layout_margin="3sp"
        android:src="@drawable/star"
        />
    <ImageView
        android:layout_width="20sp"
        android:layout_height="20sp"
        android:layout_gravity="center|center_horizontal"
        android:layout_margin="3sp"
        android:src="@drawable/star"
        />
    <ImageView
        android:layout_width="20sp"
        android:layout_height="20sp"
        android:layout_gravity="center|center_horizontal"
        android:layout_margin="3sp"
        android:src="@drawable/star"
        />
    <ImageView
        android:layout_width="20sp"
        android:layout_height="20sp"
        android:layout_gravity="center|center_horizontal"
        android:layout_margin="5sp"
        android:src="@drawable/star"
        />
</LinearLayout>
<LinearLayout
    android:layout_width="0sp"
    android:layout_height="50sp"
    android:layout_weight="1.8"
    android:background="#FF0000"

    android:gravity="right"
    >
<ImageView
    android:layout_width="25sp"
    android:layout_height="25sp"
    android:layout_gravity="center"
    android:src="@drawable/profile"
    android:layout_marginRight="10sp"
    />
</LinearLayout>

您可以根据您的评分将 Imageview 的可见性设置为 VISABLE/INVISABLE。

您将使用 android:scaleType=""