<cn.com.karl.view.MyGridView
android:id="@+id/bookShelf"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_below="@id/head"
android:cacheColorHint="#00000000"
android:columnWidth="90.0dip"
android:fadingEdge="none"
android:horizontalSpacing="5dp"
android:listSelector="#00000000"
android:numColumns="3"
android:scrollbars="none"
android:verticalSpacing="20dp" />
public class MyGridView extends GridView {
private Bitmap background;
public MyGridView(Context context, AttributeSet attrs) {
super(context, attrs);
background = BitmapFactory.decodeResource(getResources(),
R.drawable.bookshelf_layer_center);
}
@Override
protected void dispatchDraw(Canvas canvas) {
int count = getChildCount();
int top = count > 0 ? getChildAt(0).getTop() : 0;
int backgroundWidth = background.getWidth();
int backgroundHeight = background.getHeight() + 2;
int width = getWidth();
int height = getHeight();
for (int y = top; y < height; y += backgroundHeight) {
for (int x = 0; x < width; x += backgroundWidth) {
canvas.drawBitmap(background, x, y, null);
}
}
super.dispatchDraw(canvas);
}
}
public class CopyOfBookShelfActivity extends BaseActivity {
private GridView bookShelf;
private int[] data = { R.drawable.cover_txt, R.drawable.cover_txt,
R.drawable.cover_txt, R.drawable.cover_txt, R.drawable.cover_txt,
R.drawable.cover_txt, R.drawable.cover_txt, R.drawable.cover_txt,
R.drawable.cover_txt, R.drawable.cover_txt, R.drawable.cover_txt,
R.drawable.cover_txt, R.drawable.cover_txt, R.drawable.cover_txt,
R.drawable.cover_txt, R.drawable.cover_txt, R.drawable.cover_txt,
R.drawable.cover_txt, R.drawable.cover_txt, R.drawable.cover_txt,
R.drawable.cover_txt, R.drawable.cover_txt, R.drawable.cover_txt,
R.drawable.cover_txt, R.drawable.cover_txt, R.drawable.cover_txt,
R.drawable.cover_txt, R.drawable.cover_txt, R.drawable.cover_txt,
R.drawable.cover_txt, R.drawable.cover_txt, R.drawable.cover_txt,
R.drawable.cover_txt, R.drawable.cover_txt
};
private String[] name = { "天龙八部", "搜神记", "水浒传", "黑道悲情" };
private GridView gv;
private Button iv;
private List<ResolveInfo> apps;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
this.requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.main);
bookShelf = (GridView) findViewById(R.id.bookShelf);
ShlefAdapter adapter = new ShlefAdapter();
bookShelf.setAdapter(adapter);
bookShelf.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
if (arg2 >= data.length) {
} else {
Toast.makeText(getApplicationContext(), "" + arg2,
Toast.LENGTH_SHORT).show();
}
}
});
loadApps();
gv = (GridView) findViewById(R.id.allApps);
iv = (Button) findViewById(R.id.imageViewIcon);
gv.setAdapter(new GridAdapter());
}
class ShlefAdapter extends BaseAdapter {
@Override
public int getCount() {
return data.length + 5;
}
@Override
public Object getItem(int arg0) {
return arg0;
}
@Override
public long getItemId(int arg0) {
return arg0;
}
@Override
public View getView(int position, View contentView, ViewGroup arg2) {
contentView = LayoutInflater.from(getApplicationContext()).inflate(
R.layout.item1, null);
TextView view = (TextView) contentView
.findViewById(R.id.imageView1);
if (data.length > position) {
if (position < name.length) {
view.setText(name[position]);
}
view.setBackgroundResource(data[position]);
} else {
view.setBackgroundResource(data[0]);
view.setClickable(false);
view.setVisibility(View.INVISIBLE);
}
return contentView;
}
}
private void loadApps() {
Intent intent = new Intent(Intent.ACTION_MAIN, null);
intent.addCategory(Intent.CATEGORY_LAUNCHER);
apps = getPackageManager().queryIntentActivities(intent, 0);
}
public class GridAdapter extends BaseAdapter {
public GridAdapter() {
}
public int getCount() {
return apps.size();
}
public Object getItem(int position) {
return apps.get(position);
}
public long getItemId(int position) {
return position;
}
public View getView(int position, View convertView, ViewGroup parent) {
ImageView imageView = null;
if (convertView == null) {
imageView = new ImageView(CopyOfBookShelfActivity.this);
imageView.setScaleType(ImageView.ScaleType.FIT_CENTER);
imageView.setLayoutParams(new GridView.LayoutParams(50, 50));
} else {
imageView = (ImageView) convertView;
}
ResolveInfo ri = apps.get(position);
imageView.setImageDrawable(ri.activityInfo
.loadIcon(getPackageManager()));
return imageView;
}
}
}
完整代码下载地址:http://download.csdn.net/detail/androidsj/5336085