结果展示:
关键分析:根据屏幕比例算出每一页放多少个Item,然后把每一页的Item push进工作数组中,然后传给adapter,利用adapter的notifyDataSetChanged更新即可;
注意:getCount返回的是工作数组的size,这样的话最后一页才不会出错(往往是抛出空指针)
关键代码:
MainActivity.java
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
gridView = (GridView) findViewById(R.id.gridview);
initView();
InputStream input = getResources().openRawResource(R.drawable.android);
BitmapDrawable android = new BitmapDrawable(input);
Bitmap bitmap = android.getBitmap();
for(int i=0;i<30;i++){
Picture tmp = new Picture();
tmp.setImage(bitmap);
tmp.setTitle("Name "+String.valueOf(i));
pictureInfo.add(tmp);
}
cl = new Button.OnClickListener() {
public void onClick(View v) {
// TODO Auto-generated method stub
switch (v.getId()) {
case R.id.btnLeft:
leftView();
break;
case R.id.btnRight:
rightView();
break;
}
}
};
btnLeft.setOnClickListener(cl);
btnRight.setOnClickListener(cl);
checkButton();
initWorkArray();
gridView.setOnItemClickListener(new OnItemClickListener()
{
public void onItemClick(AdapterView<?> parent, View v, int position, long id)
{
Toast.makeText(MainActivity.this, "pic" + (position+1), Toast.LENGTH_SHORT).show();
}
});
}