Android-GridView

布局用 RelativeLayout 或者** GridLayout** 都可以



    

处理 item 的点击事件

public class MainActivity extends AppCompatActivity {
    private GridView gridview;
    private  ImageAdapter adapter;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        gridview = (GridView) this.findViewById(R.id.gridview);
        adapter = new ImageAdapter();
        gridview.setAdapter(adapter);
        // 点击 GridView 的item 的点击事件
        gridview.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @SuppressLint("ShowToast")
            @Override
            public void onItemClick(AdapterView parent, View view, int position, long id) {
                Toast.makeText(MainActivity.this, "-->"+position, Toast.LENGTH_LONG).show();
            }
        });
    }

    private int[] images = {R.drawable.pro, R.drawable.pro1};
    // 相当于iOS中CollectionView的代理方法
    public class ImageAdapter extends BaseAdapter{

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

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

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

        @Override
        public View getView(int position, View convertView, ViewGroup parent) {
            // 手工创建View对象(用于比较简单的)
            // 加载xml文件
            ImageView imageView = null;
            if(convertView == null)
            {
                imageView = new ImageView(MainActivity.this);
            }
            else
            {
                imageView = (ImageView) convertView;
            }
            // 设置GridView的显示 的格子的间距
            imageView.setLayoutParams(new GridView.LayoutParams(85,85));
            imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
            imageView.setPadding(8, 8, 8, 8);
            imageView.setImageResource(images[position]);

            return imageView;
        }
    }
}

你可能感兴趣的:(Android-GridView)