Android GridView的使用方法
2019独角兽企业重金招聘Python工程师标准>>>
Android的GridView控件用于把一系列的空间组织成一个二维的网格显示出来 应用的比较多的就是组合图片显示 下面我就详细讲一个例子
首先写一个类继承BaseAdapter
[java] view plaincopy
public class ImageList extends BaseAdapter {
public Bitmap[] image;
Activity activity;
// construct
public ImageList(Activity a) {
activity = a;
}
@Override
public int getCount() {
// TODO Auto-generated method stub
return image.length;
}
@Override
public Object getItem(int position) {
// TODO Auto-generated method stub
return image[position];
}
@Override
public long getItemId(int position) {
// TODO Auto-generated method stub
return position;
}
public View getView(int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
ImageView imageView;
if (convertView == null) {
imageView = new ImageView(activity);
imageView.setLayoutParams(new GridView.LayoutParams(50, 50));// 设置ImageView宽高
imageView.setAdjustViewBounds(false);
imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
} else {
imageView = (ImageView) convertView;
}
imageView.setImageBitmap(image[position]);
return imageView;
}
public static Bitmap drawableToBitmap(Drawable drawable) {
Bitmap bitmap = Bitmap
.createBitmap(
drawable.getIntrinsicWidth(),
drawable.getIntrinsicHeight(),
drawable.getOpacity() != PixelFormat.OPAQUE ? Bitmap.Config.ARGB_8888
: Bitmap.Config.RGB_565);
Canvas canvas = new Canvas(bitmap);
drawable.setBounds(0, 0, drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight());
drawable.draw(canvas);
return bitmap;
}
}
然后在主程序里
[c-sharp] view plaincopy
final GridView gv = (GridView) findViewById(R.id.grid);
ImageList adapter = new ImageList(available.this);
Resources res=getResources();
Bitmap bmp=BitmapFactory.decodeResource(res, R.drawable.logo);
adapter.image=new Bitmap[20];
for(int i=0;i<=19;i++)
{
adapter.image[i]=bmp;
}
gv.setAdapter(adapter);
gv.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1,
int arg2, long arg3) {
// TODO Auto-generated method stub
Log.i("phb", arg2 + "");
Log.i("phbsel",gv.isFocused()+"");
Intent i=new Intent(available.this, com.mobile.links.shop.mycx.shopcart.class);
startActivity(i);
}
});
gv.setOnItemSelectedListener(new OnItemSelectedListener(){
@Override
public void onItemSelected(AdapterView<?> arg0, View arg1,
int arg2, long arg3) {
// TODO Auto-generated method stub
Log.i("selected",arg2+"");
tv.setText(arg2+":detail");
}
@Override
public void onNothingSelected(AdapterView<?> arg0) {
// TODO Auto-generated method stub
}
});
其中onClick函数是判断被点击
而onSelect函数是判断被选中 也就是获得焦点的imageview
这样我们就可以基于gridview来做一些应用了。
构建gridview的xml代码
[c-sharp] view plaincopy
<?xml version="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"
>
<GridView android:id="@+id/availgrid"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:numColumns="4"
android:verticalSpacing="30dp"
android:layout_centerHorizontal = "true"
/>
</LinearLayout>
转载于:https://my.oschina.net/1590538xiaokai/blog/338724
Android GridView的使用方法相关推荐
- android gridview 停止滚动
http://blog.csdn.net/yaphetzhao/article/details/50544105 参考上面的博客,关键代码我就贴出来吧: public void stopGridVie ...
- android gridview滑动监听,Android GridView 滑动条设置一直显示状态(推荐)
Android GridView 滑动条设置一直显示状态(推荐) 模拟GridView控件: android:id="@+id/picture_grid" android:layo ...
- android gridview画分割线
dongyangzhang android gridview画分割线,如图: 1.先上图: 2.具体实现代码: public class LineGridView extends GridView { ...
- Android GridView实现横向滚动
1:Activity布局,data_test.xml: <?xml version="1.0" encoding="utf-8"?> <Lin ...
- android源码下载方法 批量下载 基于windows os
安装win版的Gitbash, 在这里 http://msysgit.googlecode.com/files/Git-1.6.0.2-preview20080923.exe. 选择默认安装路径(否则 ...
- android屏幕密度高度,Android获取常用辅助方法(获取屏幕高度、宽度、密度、通知栏高度、截图)...
我们需要获取Android手机或Pad的屏幕的物理尺寸,以便于界面的设计或是其他功能的实现.下面就分享一下Android中常用的一些辅助方法: 获取屏幕高度: /** * 获得屏幕高度 * @para ...
- android studio 如何提示方法的用法
方法/步骤1在 Eclipse中鼠标放上去就可以提示方法的用法,实际上Android Studio也可以设置的.如图 Preferences > Editor >Generan> S ...
- Android滑动冲突解决方法
Android滑动冲突解决方法 滑动冲突 首先讲解一下什么是滑动冲突.当你需要在一个ScrollView中嵌套使用ListView或者RecyclerView的时候你会发现只有ScrollView能够 ...
- android TextView 的setTextSize方法的使用
今天,简单讲讲android的TextView 的setTextSize方法的使用. 之前,我看代码时发现了这个函数,于是在网上查询了这个函数的用法,发现之前自己了解的不够全面,所以这里记录一下. 看 ...
最新文章
- jmh气象传真图网站_在冬奥滑雪场,他凭着气象信息,念好一本生意经
- 1.3 单一数字评估指标-深度学习第三课《结构化机器学习项目》-Stanford吴恩达教授
- 引:善用backtrace解决大问题
- Mysql数据库(一)——mysql数据库初体验
- ACM算法--二分法--模板
- C语言模拟实现标准库函数之strstr()
- 21.Merge Two Sorted Lists 、23. Merge k Sorted Lists
- CSS Scrollbar (滚动条)
- .net语言中使用MapWinGIS.ocx
- OA选型案例:建筑行业选型华天OA系统
- mysql正则mybatis中用法_SQL正则表达式及mybatis中使用正则表达式
- bullmind在线流程图软件,在线visio软件
- 使用ES6,Pt更好JavaScript。 II:深入学习课堂
- matlab一个m文件定义多个函数,matlab怎么在一个m文件中写多个函数?
- 前端性能优化建议,24条
- https://juejin.im/post/5ae081aaf265da0b767d263a
- php离线bt下载,transmission + nginx = 离线BT下载站
- 灯哥开源ODRIVE FOC驱动器使用记录
- 阿宇NVR手机APP如何解绑?
- MYSQL学习笔记06:列属性[NULL,default,comment],主键,自增长,唯一键,数据库设计规范[范式(1NF,2NF,3NF),逆规范化],表关系[1V1,1VN,NVN]
热门文章
- 获取map第一个的key和value_谁要是再敢用Map传参,我过去就是一JIO
- Spring Boot + Thymeleaf 创建web项目
- 剑指 offer 树的子结构
- C语言 | 编译与预处理指令(宏定义完整讲解:#define)
- 图解TCP数据报结构以及三次握手(非常详细)
- 操作系统服务:logging日志记录模块
- erlang精要(9)-erl(1)
- 【Python】4500字、10个案例分享几个Python可视化小技巧,助你绘制高质量图表
- 避免入坑:如何知道一个导师的人品?
- 【机器学习】太强了!这个建模神器可以玩一辈子