How to create GridView image gallery programmatically in android?

后端 未结 2 1694
故里飘歌
故里飘歌 2020-12-31 17:39

I want to create 3x3 gridview programmatically for displaying images. And I want to set each item height and width by getting screen dimensions. Like:

Displa         


        
2条回答
  •  攒了一身酷
    2020-12-31 18:02

    In your Activity:

    @Override
    public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    GridView gridView = new GridView(this);
    gridView.setNumColumns(3);
    setContentView(gridView);
    gridView.setAdapter(new GridViewAdapter(this));
    }
    

    And Adapter:

    private class GridViewAdapter extends BaseAdapter {
    private Context context;
    private final int length = 9;
    public GridViewAdapter(Context context) {
                this.context = context;
    }
    @Override
            public int getCount() {
                return length;
            }
    @Override
            public Object getItem(int position) {
                return null;
            }
    @Override
            public long getItemId(int position) {
                return 0;
            }
    @Override
            public View getView(int position, View convertView, ViewGroup parent) {
                ImageView imageView;
                if (convertView == null) {
                    imageView = new ImageView(context);
                    DisplayMetrics metrics = context.getResources().getDisplayMetrics();
                    int width = metrics.widthPixels / 3;
                    int height = metrics.heightPixels / 3;
                    imageView.setLayoutParams(new GridView.LayoutParams(width, height));
                } else {
                    imageView = (ImageView) convertView;
                }
    imageView.setImageResource(R.drawable.ic_launcher);
                return imageView;
            }
        }
    

提交回复
热议问题