Android игнорирует мои setWidth () и setHeight () - PullRequest
4 голосов
/ 04 мая 2010

Итак, почему этот код:

package org.popoffka.apicross;

import android.app.Activity;
import android.os.Bundle;
import android.widget.Button;

public class Game extends Activity {
 @Override
 protected void onCreate(Bundle savedInstanceState) {
     super.onCreate(savedInstanceState);
     Button testButton = new Button(this);
     testButton.setBackgroundResource(R.drawable.cell);
     testButton.setWidth(20);
     testButton.setHeight(20);
     setContentView(testButton);
 }
}

... произвести эту вещь: http://i42.tinypic.com/2hgdzme.png даже если в коде есть setWidth (20) и setHeight (20)? (R.drawable.cell - это PNG-изображение размером 20x20, содержащее белую клетку с серебряной рамкой)

Ответы [ 3 ]

13 голосов
/ 04 мая 2010

Правильный способ установить ширину и высоту вида - это сделать с помощью LayoutParams. См. ViewGroup.LayoutParams и View.getLayoutParams ().

3 голосов
/ 04 мая 2010

Вы устанавливаете кнопку как просмотр содержимого, что означает, что вы используете ее в качестве «корневого контейнера».

Необходимо добавить кнопку в соответствующий макет, а затем установить макет в качестве представления содержимого.

Подумайте об этом, что бы вы имели по бокам кнопки? Ни один компонент не покрыл бы эту область, и пользовательский интерфейс не мог бы знать, что визуализировать в этих областях.

0 голосов
/ 10 сентября 2015

Я знаю, что это поздний ответ, но надеюсь, что он кому-нибудь поможет.

Это потому, что кнопка имеет минимальную ширину 64 dip по умолчанию. Установите значение 0 перед установкой ширины.

b.setMinimumWidth(0);

В противном случае рекомендуется использовать LayoutParams

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...