Android 运行GridView时增加视图尺寸

Android 运行GridView时增加视图尺寸,android,gridview,Android,Gridview,我有一个简单的应用程序,在活动\u main中有一个GridView和一个按钮。 当我点击按钮时,我想增加每个项目的尺寸(在GridView中)。 但它不起作用。所以谁来帮我 activity_main.xml CustomBaseAdapter.java <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android

我有一个简单的应用程序,在活动\u main中有一个GridView和一个按钮。 当我点击按钮时,我想增加每个项目的尺寸(在GridView中)。 但它不起作用。所以谁来帮我

activity_main.xml

CustomBaseAdapter.java

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">

    <GridView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:numColumns="4"
        android:id="@+id/gridView"
        >


    </GridView>

    <Button
        android:id="@+id/btnSize"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/gridView"
        android:layout_centerHorizontal="true"
        android:text="Increase Size"
        />

</RelativeLayout>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" android:layout_width="match_parent"
    android:layout_height="match_parent">

    <ImageView
        android:id="@+id/imageView"
        android:layout_width="100dp"
        android:layout_height="100dp"
        android:scaleType="centerCrop"
        />
</LinearLayout>
 @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        getSupportActionBar().hide();
        setContentView(R.layout.activity_main);

        gridView = (GridView) findViewById(R.id.gridView);
        customBaseAdapter = new CustomBaseAdapter(this, R.layout.custom_gridview_item, imageIDs);
        customBaseAdapter.notifyDataSetChanged();

        gridView.setAdapter(customBaseAdapter);

        btnIncrease = (Button) findViewById(R.id.btnSize);
        btnIncrease.setOnClickListener(this);
    }

    @Override
    public void onClick(View v) {
        customBaseAdapter.changeLayout(customBaseAdapter.getWidth() + 40, customBaseAdapter.getHeight() + 40);
        customBaseAdapter.notifyDataSetChanged();
        gridView.invalidateViews();
    }
public class CustomBaseAdapter extends BaseAdapter{
Context context;
int layout;
int[] imageIDS;
int Height = 300;
int Width = 300;


public static class ViewHolder
{
    ImageView imgView;
}

public int getHeight() {
    return Height;
}

public int getWidth() {
    return Width;
}

public CustomBaseAdapter(Context context, int layout, int[] imageIDS) {
    this.context = context;
    this.layout = layout;
    this.imageIDS = imageIDS;
}

@Override
public int getCount() {
    return imageIDS.length;
}

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

@Override
public long getItemId(int position) {
    return 0;
}

@Override
public View getView(int position, View convertView, ViewGroup parent) {
    View viewrow = convertView;

    if (viewrow == null) {
        LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        viewrow  = inflater.inflate(layout, parent, false);

        ViewHolder holder = new ViewHolder();
        holder.imgView = (ImageView) viewrow.findViewById(R.id.imageView);

        ViewGroup.LayoutParams layoutParams = holder.imgView.getLayoutParams();
        layoutParams.width = Width;
        layoutParams.height = Height;
        holder.imgView.requestLayout();

        viewrow.setTag(holder);
    }

    ViewHolder holder = (ViewHolder) viewrow.getTag();

    holder.imgView.setImageResource(imageIDS[position]);

    return viewrow;
}

public void changeLayout(int width, int height){
    Width = width;
    Height = height;
}