Android(安卓)GridView的使用方法
Android的GridView控件用于把一系列的空间组织成一个二维的网格显示出来 应用的比较多的就是组合图片显示 下面我就详细讲一个例子
首先写一个类继承BaseAdapter
[java]view plaincopy
-
publicclassImageListextendsBaseAdapter{
-
-
publicBitmap[]image;
-
Activityactivity;
-
-
//construct
-
publicImageList(Activitya){
-
activity=a;
-
}
-
@Override
-
publicintgetCount(){
-
//TODOAuto-generatedmethodstub
-
returnimage.length;
-
}
-
@Override
-
publicObjectgetItem(intposition){
-
//TODOAuto-generatedmethodstub
-
returnimage[position];
-
}
-
@Override
-
publiclonggetItemId(intposition){
-
//TODOAuto-generatedmethodstub
-
returnposition;
-
}
-
publicViewgetView(intposition,ViewconvertView,ViewGroupparent){
-
//TODOAuto-generatedmethodstub
-
ImageViewimageView;
-
if(convertView==null){
-
imageView=newImageView(activity);
-
imageView.setLayoutParams(newGridView.LayoutParams(50,50));//设置ImageView宽高
-
imageView.setAdjustViewBounds(false);
-
imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
-
-
}else{
-
imageView=(ImageView)convertView;
-
}
-
imageView.setImageBitmap(image[position]);
-
-
returnimageView;
-
}
-
publicstaticBitmapdrawableToBitmap(Drawabledrawable){
-
-
Bitmapbitmap=Bitmap
-
.createBitmap(
-
drawable.getIntrinsicWidth(),
-
drawable.getIntrinsicHeight(),
-
drawable.getOpacity()!=PixelFormat.OPAQUE?Bitmap.Config.ARGB_8888
-
:Bitmap.Config.RGB_565);
-
Canvascanvas=newCanvas(bitmap);
-
drawable.setBounds(0,0,drawable.getIntrinsicWidth(),drawable.getIntrinsicHeight());
-
drawable.draw(canvas);
-
returnbitmap;
-
}
-
}
然后在主程序里
[c-sharp] view plaincopy
-
finalGridViewgv=(GridView)findViewById(R.id.grid);
-
ImageListadapter=newImageList(available.this);
-
Resourcesres=getResources();
-
Bitmapbmp=BitmapFactory.decodeResource(res,R.drawable.logo);
-
adapter.image=newBitmap[20];
-
for(inti=0;i<=19;i++)
-
{
-
adapter.image[i]=bmp;
-
}
-
gv.setAdapter(adapter);
-
gv.setOnItemClickListener(newOnItemClickListener(){
-
@Override
-
publicvoidonItemClick(AdapterView<?>arg0,Viewarg1,
-
intarg2,longarg3){
-
//TODOAuto-generatedmethodstub
-
Log.i("phb",arg2+"");
-
Log.i("phbsel",gv.isFocused()+"");
-
Intenti=newIntent(available.this,com.mobile.links.shop.mycx.shopcart.class);
-
startActivity(i);
-
}
-
});
-
gv.setOnItemSelectedListener(newOnItemSelectedListener(){
-
@Override
-
publicvoidonItemSelected(AdapterView<?>arg0,Viewarg1,
-
intarg2,longarg3){
-
//TODOAuto-generatedmethodstub
-
Log.i("selected",arg2+"");
-
tv.setText(arg2+":detail");
-
}
-
@Override
-
publicvoidonNothingSelected(AdapterView<?>arg0){
-
//TODOAuto-generatedmethodstub
-
-
}
-
-
});
-
其中onClick函数是判断被点击
而onSelect函数是判断被选中 也就是获得焦点的imageview
这样我们就可以基于gridview来做一些应用了。
构建gridview的xml代码
[c-sharp] view plaincopy
-
<?xmlversion="1.0"encoding="utf-8"?>
-
<LinearLayout
-
android:id="@+id/relativelayout"
-
android:layout_width="fill_parent"
-
android:layout_height="fill_parent"
-
xmlns:android="http://schemas.android.com/apk/res/android"
-
android:orientation="vertical"
-
>
-
<GridViewandroid:id="@+id/availgrid"
-
android:layout_width="fill_parent"
-
android:layout_height="wrap_content"
-
android:numColumns="4"
-
android:verticalSpacing="30dp"
-
android:layout_centerHorizontal="true"
-
-
/>
-
-
-
</LinearLayout>
更多相关文章
- Android(安卓)Camera对焦相关
- android中的EditView控件
- android通过USB的MTP模式下,禁止用户在根目录有任何操作(重命名 删
- Android仿QQ消息列表ListView滑动删除效果
- Android(安卓)Camera调用流程
- Android中如何查看so崩溃的log
- Android(安卓)无线启动过程分析 无线启动过程分析
- 5.17学习内容 android判断软键盘状态、系统键盘监控、生成中间lo
- 箭头函数的基础使用