В сценарии, где размер виджета должен быть установлен программно, соблюдайте следующие правила.
- Установите
LayoutParam
для макета, в который вы добавляете это представление . В моем случае я добавляю к TableRow
, поэтому мне пришлось сделать TableRow.LayoutParams
- Следуйте этому коду
final float scale = getResources().getDisplayMetrics().density;
int dpWidthInPx = (int) (17 * scale);
int dpHeightInPx = (int) (17 * scale);
TableRow.LayoutParams deletelayoutParams = new TableRow.LayoutParams(dpWidthInPx, dpHeightInPx);
button.setLayoutParams(deletelayoutParams);
tableRow.addView(button, 1);