我不得不处理一个类似的问题,back_img, img, text。我可以通过样式以非常糟糕的方式处理它(对于每种不同的屏幕尺寸),但这是我发现唯一有效的方法......
我设置了一个 LinearLayout 并将 3 个 imgs 放在另一个 LinearLayout 中
LinearLayoutLine //wrap content\\
LinearLayoutImg1 //wrap content + marginRight\\
Img11
Img12
Text13
/LinearLayoutImg1
LinearLayoutImg2
Img21
Img22
Text23
/LinearLayoutImg2
/LinearLayoutLine
在样式中,是这样的:
<style name="img1">
<item name="android:layout_width">85dp</item>
<item name="android:layout_height">85dp</item>
<item name="android:layout_marginLeft">1dp</item>
<item name="android:layout_marginRight">2dp</item>
<item name="android:layout_marginTop">1dp</item>
<item name="android:layout_marginBottom">1dp</item>
<item name="android:gravity">center</item>
<item name="android:scaleType">fitXY</item>
</style>
<!-- imatge del tema -->
<style name="img2">
<item name="android:layout_width">82.6dp</item>
<item name="android:layout_height">82.6dp</item>
<item name="android:layout_marginLeft">-87dp</item>
<item name="android:layout_marginRight">0dp</item>
<item name="android:layout_marginTop">0dp</item>
<item name="android:layout_marginBottom">0dp</item>
<item name="android:gravity">center</item>
</style>
<style name="text" parent="@android:style/TextAppearance.Small">
<item name="android:layout_width">66dp</item>
<item name="android:layout_height">wrap_content</item>
<item name="android:lines">1</item>
<item name="android:gravity">center</item>
<item name="android:layout_marginBottom">-25.3dp</item>
<item name="android:layout_marginLeft">-75dp</item>
<item name="android:textStyle">normal</item>
<item name="android:textSize">10.5sp</item>
<item name="android:textColor">@color/blanc</item>
</style>
因此,您将 Img1 的大小设置为一点边距(我发现有时您需要在 Imgs 中使用该边距),第二个设置为负 IMG1 宽度+rightMargin 以及在需要时设置文本。