带按钮的GridView按比例缩放

时间:2014-11-17 11:39:14

标签: android gridview layout

我的gridview填充按钮有问题。当我使用match_parent时,按钮的大小是不同的,当我设置固定大小时它看起来不错,但不是在所有屏幕尺寸上。也许我应该使用除按钮之外的其他组件?这是我的代码。

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
        Bundle savedInstanceState) {
    View rootView = inflater.inflate(R.layout.myfragment, container,
            false);

    GridView myfragment_grid = (GridView) rootView.findViewById(R.id.myfragment_grid);
    myfragment_grid.setAdapter(new GridAdapter(getActivity()));

    return rootView;
}

public class GridAdapter extends BaseAdapter {
    public GridAdapter(Context c) {
        mContext = c;
    }

    public int getCount() {
        return 12;
    }

    public Object getItem(int position) {
        return position;
    }

    public long getItemId(int position) {
        return position;
    }

    public View getView(final int position, View convertView,
            ViewGroup parent) {

        String[] labels = getActivity().getResources().getStringArray(
                R.array.grid_labels);

        Button menuButton;
        if (convertView == null) {
            menuButton = new Button(mContext);
            menuButton.setBackgroundColor(getResources().getColor(
                    R.color.grid_item_color));
            menuButton.setTextColor(getResources().getColor(R.color.white));
            menuButton.setTextSize(15);
            menuButton.setText(labels[position]);
            menuButton.setLayoutParams(new GridView.LayoutParams(
                    LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT));
            menuButton.setOnClickListener(new OnClickListener() {

                @Override
                public void onClick(View arg0) {
                    switch (position) {
                ...
                    }

                }
            });
        } else {
            menuButton = (Button) convertView;
        }
        return menuButton;

    }

    private Context mContext;
}

0 个答案:

没有答案