【发布时间】:2017-07-14 06:06:40
【问题描述】:
我正在尝试制作一个火柴棒游戏,所以我需要创建一个火柴棒网格。最终它需要更大,但我从小开始。所以,如果你不熟悉这个游戏,开始它看起来像这样:
-- -- --
| | | |
-- -- --
| | | |
-- -- --
| | | |
-- -- --
其中每个-- 是水平火柴,每个| 是垂直火柴。因此,为了创建一个盒子版本,我创建了一个 3x3 网格,然后在 (0, 1) 和 (2, 1) 处填充水平火柴棒,在 (1, 0) 和 (1, 2) 处填充垂直火柴棒.我使用图像按钮做到了这一点。但是,当我在 xml 编辑器中查看设计选项卡时,我看到只有右上角完全可见,并且网格单元格很大。我怀疑这是因为 ImageButtons 正在扩展以环绕两张图片,这两张图片都相当大,所以我想知道是否有一种方法可以强制 ImageButtons 保持相同的大小并缩放图片。我的xml文件如下:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:id="@+id/matchgame"
android:layout_height="match_parent"
android:weightSum="4" >
<GridLayout
android:id="@+id/board"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="3"
android:columnCount="3">
<ImageButton
android:layout_row="0"
android:layout_column="1"
android:scaleType="fitCenter"
android:adjustViewBounds="true"
android:src="@drawable/matchstick_horizontal" />
<ImageButton
android:layout_row="1"
android:layout_column="0"
android:scaleType="fitCenter"
android:adjustViewBounds="true"
android:src="@drawable/matchstick_vertical"/>
<ImageButton
android:layout_row="1"
android:layout_column="2"
android:scaleType="fitCenter"
android:adjustViewBounds="true"
android:src="@drawable/matchstick_vertical"/>
<ImageButton
android:layout_row="2"
android:layout_column="1"
android:scaleType="fitCenter"
android:adjustViewBounds="true"
android:src="@drawable/matchstick_horizontal"/>
</GridLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:weightSum="1">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:weightSum="3"
android:orientation="vertical">
<TextView
android:id="@+id/timer"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="2"
android:gravity="center_vertical|center_horizontal"
android:text="HH : MM : SS"/>
<ImageButton
android:id="@+id/playPause"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:gravity="center_vertical|center_horizontal"
android:src="@drawable/button2"
android:backgroundTint="@color/white"/>
</LinearLayout>
</LinearLayout>
</LinearLayout>
【问题讨论】:
-
我对您在布局中尝试执行的操作感到困惑。你只有 4 个按钮,但你想要一个 3x3 的网格?
-
@Pztar 我故意把角落留空,这样看起来更好。
-
您唯一的选择是为每个屏幕密度提供一个图像。
drawable-xxxhdpi图像尺寸为192x192一直到drawable-mdpi为48x48您可以在此处找到更多信息:developer.android.com/guide/practices/screens_support.html
标签: android xml imagebutton android-gridlayout