Кнопка изменения размера вопроса Android - PullRequest
3 голосов
/ 01 февраля 2011

У меня есть 4 кнопки, которые я хочу показать в виде сетки.Я хочу, чтобы они заполнили экран как можно больше, но я так и не сделал этого.Я перепробовал все виды ScaleTypes, и это не сработает.Прямо сейчас у меня есть тип масштаба в FIT_CENTER, но я получаю неожиданный результат.Вот код, который у меня есть:

Main.java

@Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        Display screenSize = getWindowManager().getDefaultDisplay();
        int screenWidth = screenSize.getWidth();
        int screenHeight = screenSize.getHeight();

        int iconWidth =  screenWidth/4;
        int iconHeight=  screenHeight/2;

        GridView gridview = (GridView) findViewById(R.id.gridview);
        gridview.setAdapter(new ImageAdapter(this, iconWidth, iconHeight));

        }

ImageAdapter.java

public View getView(final int position, View convertView, ViewGroup parent) {
        ImageView imageView;
        if (convertView == null) {
            imageView = new ImageView(m_Context);
            imageView.setLayoutParams(new GridView.LayoutParams(m_width, m_height));
            imageView.setScaleType(ImageView.ScaleType.FIT_CENTER);
            imageView.setPadding(8, 8, 8, 8);

        } else {
            imageView = (ImageView) convertView;
        }
        imageView.setImageResource(mThumbIds[position]);
        return imageView;
    }

GridViewLayout.xml

<?xml version="1.0" encoding="utf-8"?>
<GridView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/gridview"
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent"
    android:verticalSpacing="10dp"
    android:horizontalSpacing="10dp"
    android:columnWidth="90dp"
    android:stretchMode="columnWidth"
    android:gravity="center"
    android:numColumns="2"
    android:background="#FFFFFF"/>

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

wrong result

Вот как я бы хотел, чтобы это выглядело:

desired result

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

1 Ответ

0 голосов
/ 28 сентября 2017

Вы можете достичь этого, используя представление рециркулятора с GridLayoutManager. там вы можете определить размер одного элемента, чтобы соответствовать половине высоты устройства и ширины. Тогда это будет ожидаемый вами результат.

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