Dynami c Изображение в Android Studio TableLayout - PullRequest
1 голос
/ 30 января 2020

Я создаю простое приложение, используя Android Studio и Kotlin.

Приложение показывает, что для каждого месяца результаты равны «0» или «1» и используются в формате TableLayout .

введите описание изображения здесь

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

   <TextView
        android:layout_width="0dp"
        android:layout_weight="1"
        android:gravity="center"
        android:padding="1dip"
       android:text="January" />

    <TextView
        android:id="@+id/JanYear1"
        android:layout_width="0dp"
        android:layout_weight="1"
        android:gravity="center"
        android:padding="1dip"
        android:text="0" />


</TableRow>

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

    <TextView
        android:layout_width="0dp"
        android:layout_weight="1"

        android:gravity="center"
        android:padding="1dip"
        android:text="@string/februrary" />

    <TextView
        android:id="@+id/FebYear1"
        android:layout_width="0dp"
        android:layout_weight="1"
        android:gravity="center"
        android:padding="1dip"
        android:text="1" />


</TableRow>

Вместо того, чтобы показывать результаты «0» или «1», я бы хотел, чтобы это было изображение: введите описание изображения здесь или введите описание изображения здесь , и результат будет динамическим c согласно некоторому коду?

Любая помощь будет принята с благодарностью.

Приветствия

1 Ответ

0 голосов
/ 30 января 2020

Вот мое предложение

XML

<TableLayout
    android:id="@+id/tabLayout"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <TableRow>

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:background="#BBFFAA"
            android:text="MONTH"
            android:textSize="20dp"
            android:textStyle="bold" />

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:background="#AACCBB"
            android:text="YEAR"
            android:textSize="20dp"
            android:textStyle="bold" />

    </TableRow>

</TableLayout>

JAVA

TableLayout tableLayout = findViewById(R.id.tabLayout);


String[][] months = {{"janvier", "0"}, {"February", "1"}, {"March", "0"}, {"April", "1"},
        {"May", "1"}, {"June", "1"}, {"July", "1"}, {"August", "1"},
        {"September", "1"}, {"October", "1"}, {"November", "1"}, {"December", "1"}};


for (int i = 0; i < months.length; i++) {

    TextView month = new TextView(this);
    TextView year = new TextView(this);

    TableRow tableRow = new TableRow(this);
    TableRow.LayoutParams layoutParams = new TableRow.LayoutParams(TableRow.LayoutParams.WRAP_CONTENT, TableRow.LayoutParams.WRAP_CONTENT);
    tableRow.setLayoutParams(layoutParams);
    layoutParams.weight = 1;

    month.setText(months[i][0]);
    month.setLayoutParams(layoutParams);
    tableRow.addView(month);
    //
    if ((months[i][1].equals("1"))) {

        year.setBackgroundResource(R.drawable.ok);
        //
        tableRow.addView(year);
    } else if (months[i][1].equals("0")) {

        year.setBackgroundResource(R.drawable.no);
        tableRow.addView(year);

    }

    tableLayout.addView(tableRow, new TableLayout.LayoutParams(TableLayout.LayoutParams.WRAP_CONTENT, TableLayout.LayoutParams.WRAP_CONTENT));
}

Вот результат:

enter image description here

...