Конфигурация кнопки Gridview - PullRequest
0 голосов
/ 19 апреля 2011

У меня есть кнопки отображения Gridview, которые получают свое содержимое из массива, см. Ниже:

xml:

<LinearLayout
    android:background="@raw/br_poster_dark"
    android:orientation="vertical"    
    android:layout_height="fill_parent"
    android:layout_width="fill_parent"
    android:layout_gravity="center"
    android:padding="30dip"     >   



            <GridView android:id="@+id/brgrid"
                android:layout_width="fill_parent" 
                android:layout_height="fill_parent"
                android:padding="5dp"
                android:columnWidth="90dp"
                android:rowHeight="90dp"
                android:numColumns="3"
                android:gravity="center"
                android:textColor="#ffffff"
                />

</LinearLayout>

И Java для кнопок:

public View getView(int position, View convertView, ViewGroup parent) {
    try {
        final Sample sample = board.getSamples().get(position);

        if (sample != null) {
            Button button = new Button(context);
            button.setText(sample.getName());


            button.setBackgroundResource(R.drawable.roundedbutton);

Как видите, у меня есть пользовательский фон (прозрачный градиент и закругленные углы), который работает нормально, но у меня возникают большие трудности с изменением других свойств кнопки, так как большая часть кода обычно переходит в xmlв разделе «Кнопка»:

Например, изменение цвета текста не работает, изменение размера строки / столбца в GridView xml не оказывает никакого влияния ...

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

Можно ли создать кнопку XML для использования?по Гридвью?

Заранее спасибо.

Ответы [ 2 ]

1 голос
/ 23 апреля 2011

Я нашел способ установить размер текста и расположение кнопки, используя шкалу плотности:

button.setLayoutParams(new GridView.LayoutParams((int)(80 * densityScale + 0.5f), (int)(50 * densityScale + 0.5f)));

button.setTextSize(12);
0 голосов
/ 19 апреля 2011

Я не понимаю необходимости декларировать кнопку в коде. Поместите его в de xml и установите текст, получив кнопку с помощью finViewById ()

Надеюсь, это немного поможет

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