Kotlin如何在TableLayout中显示图像

问题描述

我正在尝试在TableLayout中显示图像。显示了图像,但没有应显示的行和列(6行和4列-请参见下图!)。

enter image description here

这是我尝试过的

private fun drawGrid()
    {
        var row: TableRow

        val cellSize: Size = getCellSize();
        val layoutpParams: ViewGroup.LayoutParams = ViewGroup.LayoutParams(cellSize.width,cellSize.height)
        var imageView: ImageView

        _gridElementList = getData()

        var index: Int = 0

        for (i: Int in 0 until settings.row)
        {
            row =  TableRow(this)
            row.layoutParams = layoutpParams

            for (j: Int in 0 until settings.column)
            {
                imageView = ImageView(this);
                imageView.setimageResource(_gridElementList[index].drawableId)

                row.addView(imageView);

                index++
            }

            tableLayout.addView(row);
        }
    }

private fun getCellSize() : Size
{
    windowManager.defaultdisplay.getMetrics(displaymetrics);

    val screenHeight = displaymetrics.heightPixels
    val screenWidth = displaymetrics.widthPixels

    val height: Int = ( screenHeight / settings!!.row).toInt()
    val width: Int = (screenWidth / settings!!.column).toInt()

    return Size(width,height)
}

我需要调整图像大小以始终适合屏幕。矩阵最小为2x2,最大大小为4 x 8。

该活动的xmls:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context=".GameActivity">

    <TableLayout
        android:id="@+id/tableLayout"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content">

        <TableRow
            android:layout_width="match_parent"
            android:layout_height="match_parent">

            <TextView
                android:id="@+id/timeLabelTextView"
                android:layout_width="301dp"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:gravity="center"
                android:text="Eltelt idő"
                android:textAlignment="center"
                android:textSize="24sp" />

            <TextView
                android:id="@+id/timeTextView"
                android:layout_width="168dp"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:gravity="center"
                android:text="0"
                android:textAlignment="center"
                android:textSize="24sp"
                android:textStyle="bold" />
        </TableRow>
    </TableLayout>
</LinearLayout>

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)