ImageButton在gridlayout中自动调整大小

时间:2017-03-23 20:21:42

标签: android xml layout

我问这个(可能)非常简单的问题,因为我无法自己弄明白并且谷歌搜索超过一个小时并没有给我正确的结果。 所以问题是:我如何制作我的项目(通常那些只有16个图像按钮),这样当我的图片非常大时,它们可以保持比例(与gridlayout相比)(所以很简单:我在buttonImages上加载16xImages作为src ,每个图像是640x640,我希望这些16个按钮在网格布局中与网格布局宽度/高度和列/行计数相比进行缩放。我希望可以用XML编写,因为我不想重构我的java代码:/

聚苯乙烯。我是Android programmig的新手

Ps2.Here是我的GridLayout按钮示例,但它完全错误:/

<GridLayout
    android:id="@+id/GridLayout1"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:columnCount="4"
    android:rowCount="4"
    tools:context=".GridXMLActivity"
    android:layout_below="@+id/Tx1"
    android:layout_above="@+id/restart"
    android:layout_marginBottom="50sp"
    android:layout_marginTop="50sp"
    >


    <ImageButton
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="@android:color/transparent"
        android:src="@drawable/clear"
        android:id="@+id/But1"
        android:scaleType="fitXY"
        android:onClick="but1"

        />

[编辑] 我甚至做过这样的布局,但是有一些问题。第一是我的网格布局根本没有缩放!(所以当我拍摄分辨率更低或更高的屏幕时,它将不适合)。这就是为什么我想让这个按钮有一些可调整大小(在这个屏幕上每个按钮的宽度和高度都在60sp,我知道它不应该) 另一个问题是我正在处理按钮背景,我想让它成为src。 一般来说,我想在屏幕上实现相同的功能,但要使其它/更灵活的方式(因此分辨率和方向不会影响我的gui和它的元素大小)。如果你需要整个XML文件,我会在这里发布但是因为我复制粘贴16次图像按钮它有点乱 enter image description here

1 个答案:

答案 0 :(得分:2)

如果您想缩放某些内容,保持宽高比并且您将一个维度设置为match_parent,则另一个维度必须为wrap_content

因此,假设您希望按钮始终适合宽度但保持正确的方面:

<ImageButton
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    ... />

要使所有项目都适合网格而不是所有项目都适合他们的图像,您应该使用重量。使用网格布局的权重需要API21之前的支持库

<GridLayout ...
    android:columnCount="2">

    <ImageButton
        app:layout_gravity="fill"
        app:layout_columnWeight="1"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        ... />

    ...