Динамическая настройка ширины и длины изображения внутри макета таблицы

#java #android #user-interface #tablelayout #android-tablelayout

#java #Android #пользовательский интерфейс #tablelayout #android-табличное описание

Вопрос:

Я добавил макет таблицы программно в свое приложение. Первый столбец состоит из imageviews, а второй — из textviews, как в приведенном ниже коде

 for (int i = 0; i <23; i  ) {

            TableRow row= new TableRow(this);
            TableRow.LayoutParams lp = new TableRow.LayoutParams(TableRow.LayoutParams.MATCH_PARENT);
            row.setLayoutParams(lp);


            tv = new TextView(this);
            tv.setText(array[i]);


            ImageView image65 = new ImageView(this);
            image65.setBackgroundResource(R.drawable.ic_no);


            row.addView(tv,1);
            row.addView(image65,0);
            ll.addView(row,i);
        }
 

Все хорошо, за исключением того, что я хочу указать ширину и длину представления изображения в sp. Как мне добавить layoutprams для представления изображения рядом с layout-prams строки? Я попробовал следующее, но это не сработало.

 for (int i = 0; i <23; i  ) {

                TableRow row= new TableRow(this);
                TableRow.LayoutParams lp = new TableRow.LayoutParams(TableRow.LayoutParams.MATCH_PARENT);
                row.setLayoutParams(lp);
                TableRow.LayoutParams lp2 = new TableRow.LayoutParams(customwidth,customheight);


                tv = new TextView(this);
                tv.setText(array[i]);


                ImageView image65 = new ImageView(this);
                image65.setBackgroundResource(R.drawable.ic_no);
                image65.setLayoutParams(lp2);


                row.addView(tv,1);
                row.addView(image65,0);
                ll.addView(row,i);
            }
 

Ответ №1:

Я нашел решение

 for (int i = 0; i <23; i  ) {

            TableRow row= new TableRow(this);
            TableRow.LayoutParams lp = new TableRow.LayoutParams(TableRow.LayoutParams.MATCH_PARENT);
            row.setLayoutParams(lp);


            tv = new TextView(this);
            tv.setText(array[i]);


             ImageView image65 = new ImageView(this);
             Drawable d = getResources().getDrawable(R.drawable.ic_yes);
             image65.setImageDrawable(d);
             image65.setLayoutParams(new TableRow.LayoutParams(40, 40));



            row.addView(tv,1);
            row.addView(image65,0);
            ll.addView(row,i);
        }