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=""
我有一个主要动态生成的 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=""