setBackground для кнопок в таблице - PullRequest
0 голосов
/ 31 января 2019

У меня есть ряд кнопок, в таблицах, в ViewFlipper, так что я могу разбивать таблицы на страницы.Если я не установлю им фон, они сохранят свои поля между собой.Но мне нужно «сделать их красивыми», поэтому я добавил градиент к кнопкам.Но теперь они больше не держат маржу.

Я добавляю их программно, зацикливаю ArrayList текстов, которые должна иметь кнопка, добавляю их в соответствующую строку таблицы и так далее.Как это:

final Button btn = new Button(this);
btn.setText(array.get(i));
btn.setTextSize(10);

btn.setOnClickListener(new View.OnClickListener() 
{
    @Override
    public void onClick(View v) 
    {
        Log.i("TAG", "Botón pulsado: " + texto);
        goToModule(texto);
    }
});
btn.setHeight(height);
btn.setWidth(width);
btn.setOnTouchListener(parentListener);
btn.post(new Runnable() 
{
    @Override
    public void run() 
    {
        btn.setCompoundDrawablesWithIntrinsicBounds(null,getDrawableForText(texto),null, null);
        btn.setPadding(0,35,0,0);
        int[] colors = {Color.parseColor("#008000"),Color.parseColor("#ADFF2F")};
        GradientDrawable gd = new GradientDrawable(
        GradientDrawable.Orientation.TL_BR, colors);
        gd.setCornerRadius(30f);
        btn.setBackground(gd);
    }
});
row1.addView(btn);

Результат на экране выглядит следующим образом:

enter image description here

Есть ли в любом случае, чтобы кнопки выгляделикак те, у которых нет градиента, я имею в виду, соблюдая поля между ними, чтобы они выглядели как настоящая таблица?

Спасибо.

Ответы [ 2 ]

0 голосов
/ 31 января 2019

Попробуйте добавить поле к кнопке

 TableRow.LayoutParams params = new TableRow.LayoutParams(
            TableRow.LayoutParams.WRAP_CONTENT,
            TableRow.LayoutParams.WRAP_CONTENT
    );
    params.setMargins(10, 10, 10, 10);
    btn.setLayoutParams(params);
0 голосов
/ 31 января 2019

попробуйте изменить поля на отступ в xml.

...