Android Studio - setBackground ()

1

Когда я создаю TextView и устанавливаю размер, я хотел бы установить фон для рисования, используя setBackground или setBackgroundResource, однако всякий раз, когда я делаю это, он изменяет размер фона. Это не делает, если я создаю представление в файле XML, все же.

Drawable drawable = getResources().getDrawable(R.drawable.gold_edged);
    mEventView.setBackground(drawable);
    mEventView.setLayoutParams(layoutParams);
    mEventView.setPadding(24,0,24,0);
    mEventView.setWidth(LayoutParams.MATCH_PARENT);
    mEventView.setHeight((int)(height*context.getResources().getDisplayMetrics().density));
    //mEventView.setBackgroundColor(Color.parseColor("#ffffff"));
    mEventView.setTextColor(Color.parseColor("#000000"));
    mEventView.setText(message);

Это код, и когда setBackgroundColor не закомментирован, он возвращается к исходным размерам, но я не хочу этот цвет в качестве фона.

Теги:
android-studio

1 ответ

0

Я уверен, что setWidth принимает точную ширину в пикселях в качестве аргумента, поэтому присвоение ему MATCH_PARENT установит ширину в 0. Если вы хотите, чтобы его ширина соответствовала родительскому, то вы должны применять его только к его LayoutParams:

layoutParams.width = LayoutParams.MATCH_PARENT;
mEventView.setLayoutParams(layoutParams);
  • 0
    Да, это правда, я только что поместил это в целях тестирования, однако в любом случае эта ширина не является отображаемой шириной и не является правильной высотой.
  • 0
    Значения в LayoutParams влияют на ваш TextView, как описано в документе: «Это значение используется для вычисления ширины, если LayoutParams не заставляет TextView иметь точную ширину». Таким образом, вы можете попробовать установить параметры с помощью WRAP_CONTENT и указать точные пиксели для setWidth .
Показать ещё 5 комментариев

Ещё вопросы

Сообщество Overcoder
Наверх
Меню