gpt4 book ai didi

android - 如何将图像按钮包装在水平线性布局中?

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:31:56 25 4
gpt4 key购买 nike

有什么方法可以在水平线性布局中包装图像按钮吗?或者还有其他方法可以做以下事情吗?

我有六个图像按钮。假设这些按钮出现在像这样的中分辨率设备中:

Image button 1 | Image button 2 | Image button 3 | (1st row)

Image button 4 | Image button 5 | Image button 6 | (2nd row)

我希望这些按钮出现在平板电脑或任何像这样的高分辨率设备上:

Image button 1 | Image button 2 | Image button 3 | Image button 4 | (1st row)

Image button 5 | Image button 6 | (2nd row)

或者像这样:

Image button 1 | Image button 2 | Image button 3 | Image button 4 | Image button 5 | 
Image button 6 |

根据设备屏幕。

这是我的主要 XML 文件:

<?xml version="1.0" encoding="utf-8"?>

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@layout/back2">


<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:ads="http://schemas.android.com/apk/lib/com.google.ads"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@layout/back2">
<TextView
android:layout_width="fill_parent"
android:layout_height="50dp"
android:background="@layout/button5"
android:gravity="center"
android:orientation="vertical"
android:text="@string/hello"
android:textColor="#D5D5D5"
android:textSize="20sp" />
<com.google.ads.AdView android:id="@+id/adView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
ads:adUnitId="a150c75f96c352c"
ads:adSize="BANNER"

ads:loadAdOnCreate="true"/>

<org.core.mywindows8.FlowLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:f="http://schemas.android.com/apk/res/org.core.mywindows8"
f:horizontalSpacing="6dip"
f:verticalSpacing="12dip"
f:fitContent="true"

android:layout_width="fill_parent"
android:layout_height="wrap_content"
>

<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@color/morange1"
android:drawableTop="@drawable/tutorials"
android:textColor="#ffffff"
android:id="@+id/button1"
android:paddingTop="16sp"
android:drawablePadding="10sp"
android:text="@string/tutorials"
/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@color/mviolet"
android:drawableTop="@drawable/themes"
android:textColor="#ffffff"
android:id="@+id/button2"
android:paddingTop="16sp"
android:drawablePadding="10sp"
android:text="@string/themes"
/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@color/mblu2"
android:drawableTop="@drawable/gadgets"
android:textColor="#ffffff"
android:id="@+id/button3"
android:paddingTop="16sp"
android:drawablePadding="10sp"
android:text="@string/gadgets"/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@color/mgree"
android:drawableTop="@drawable/network"
android:textColor="#ffffff"
android:id="@+id/button4"
android:paddingTop="16sp"

android:drawablePadding="10sp"
android:text="@string/networking"/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@color/mblu3"
android:drawableTop="@drawable/search"
android:textColor="#ffffff"
android:id="@+id/button5"
android:paddingTop="16sp"
android:drawablePadding="10sp"
android:text="@string/win8index"/>


</org.core.mywindows8.FlowLayout>
</LinearLayout>
</ScrollView>

最佳答案

您可以为此使用 FlowLayout。

检查 this

已编辑

从我提供给您的链接向您的项目添加所需的类、样式和属性。并通过将其添加到您的布局 XML 来使用此布局。


在Git项目中提到..将Git项目中的所有文件复制到你的项目中

在 XML 中使用 FlowLayout 而不是 LinearLayout

<com.yourpackage.FlowLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
>
</com.yourpackage.FlowLayout>

然后将您的 subview 添加到该 FlowLayout 中,可以仅使用 XML 或在运行时使用。

其他支持的参数是:

xmlns:f="http://schemas.android.com/apk/res/your.namespace"
f:horizontalSpacing="6dip"
f:verticalSpacing="12dip"
f:orientation="vertical"
f:layout_horizontalSpacing="32dip"
f:layout_verticalSpacing="32dip"

我添加了一个支持以适应一行中的内容。得到 my github source

使这项工作。您需要为您的布局再提供一个属性,如 fitContent 为 true。

f:fitContent="真"

回答您的评论

f:verticalSpacing="12dip"- 用于指定整个 FlowLayout 的垂直间距。即每个 subview /按钮都将具有垂直间距。

例子

 <org.apmem.tools.layouts.FlowLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
f:verticalSpacing="12dip"
>

</org.apmem.tools.layouts.FlowLayout>

然而,当我们指定权重时,f:layout_verticalSpacing="32dip"被指定给子按钮

例子

<Button
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
f:layout_verticalSpacing="32dip"
>
</Button>

关于android - 如何将图像按钮包装在水平线性布局中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14116919/

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