【问题标题】:Drawing a board (checkers) for an Android App为 Android 应用绘制棋盘(棋盘格)
【发布时间】:2015-08-16 08:33:00
【问题描述】:

我是一名 Android 新手,试图利用我的 VB 经验(8 年前)设计一个 UI。我正在尝试创建一个跳棋板,它在 VB 中将是一个表单,我根据需要在多行中连续添加多个可调整大小的面板小部件。由于这些是面板,我可以在其上添加一个小图像(硬币)(以面板作为背景),甚至可以添加另一个小面板,其颜色可以让我可以看到和不可见以表示硬币。我知道描述 VB UI 很糟糕,但 VB 旨在简化表单设计,而且确实如此,这是我能想到的唯一 UI 语言。

我注意到 android SDK 几乎没有足够的小部件供我使用。我能想到的最好的方法是使用具有多行的 TableLayout。我不明白的是我用什么来表示一个正方形?有没有类似于 VB 面板小部件的东西?我不想使用图像,因为我希望板能够自动调整到屏幕尺寸。

有人可以帮我一些提示吗?

【问题讨论】:

    标签: android user-interface


    【解决方案1】:

    您可以使用水平 LinearLayout 在 XML 中定义布局,并用 8 个 ImageView(或任何其他可以显示图像/颜色的容器)填充它,然后在垂直 LinearLayout 中复制 7 次,类似于:

    <LinearLayout android:orientation="vertical"
                  android:layout_width="fill_parent"
                  android:layout_height="fill_parent" >
        <LinearLayout android:orientation="horizontal"
                  android:layout_width="fill_parent"
                  android:layout_height="fill_parent"
                  android:layout_weight="1" >
            <ImageView android:id="@+id/square_1"
                       android:layout_weight="1"
                       android:layout_width="fill_parent"
                       android:layout_height="fill_parent"
                       <!-- Set image or background here --> />
            <!-- Repeat the ImageView 7 times and change the id for every ImageView
                 you create -->
        </LinearLayout>
        <!-- Reapeat the LinearLayout 7 times too -->
    </LinearLayout>
    

    这将创建 8 行,每行有 8 个正方形,并且所有正方形都将具有相同的大小,这要归功于 weight 属性,这表明它们都应该获得相等的空间。

    要使用 Java 代码更改图像/背景,您必须使用:

    ImageView square_1 = (ImageView)findViewById(R.id.square_1);
    square_1.setBackground(Color.yellow);
    

    在此处阅读 Android SDK 参考中的更多信息:

    希望这对您有所帮助!

    【讨论】:

    • 感谢您的信息。现在我只是使用 Java 中的图形库来绘制它。你认为使用 XML 更好吗?
    • 首先,我认为使用 xml 代码最终会更容易阅读,但性能方面我真的说不出来。也许较慢的设备将无法处理所有视图,但他们也可能无法绘制它。最好的方法可能是您认为最简单的方法!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-10-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-10
    相关资源
    最近更新 更多