zoukankan      html  css  js  c++  java
  • Android GridView的使用方法

    Android的GridView控件用于把一系列的空间组织成一个二维的网格显示出来 应用的比较多的就是组合图片显示 下面我就详细讲一个例子

    首先写一个类继承BaseAdapter

    [java] view plaincopy

    1. public class ImageList extends BaseAdapter {  

    2.       

    3.         public Bitmap[] image;  

    4.         Activity activity;  

    5.           

    6.         // construct  

    7.         public ImageList(Activity a) {  

    8.             activity = a;  

    9.         }  

    10.         @Override  

    11.         public int getCount() {  

    12.             // TODO Auto-generated method stub  

    13.             return image.length;  

    14.         }  

    15.         @Override  

    16.         public Object getItem(int position) {  

    17.             // TODO Auto-generated method stub  

    18.             return image[position];  

    19.         }  

    20.         @Override  

    21.         public long getItemId(int position) {  

    22.             // TODO Auto-generated method stub  

    23.             return position;  

    24.         }  

    25.         public View getView(int position, View convertView, ViewGroup parent) {  

    26.             // TODO Auto-generated method stub  

    27.             ImageView imageView;  

    28.             if (convertView == null) {  

    29.                 imageView = new ImageView(activity);  

    30.                 imageView.setLayoutParams(new GridView.LayoutParams(50, 50));// 设置ImageView宽高  

    31.                 imageView.setAdjustViewBounds(false);  

    32.                 imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);  

    33.                   

    34.             } else {  

    35.                 imageView = (ImageView) convertView;  

    36.             }  

    37.             imageView.setImageBitmap(image[position]);  

    38.               

    39.             return imageView;  

    40.         }  

    41.         public static Bitmap drawableToBitmap(Drawable drawable) {    

    42.                 

    43.             Bitmap bitmap = Bitmap    

    44.                             .createBitmap(    

    45.                                             drawable.getIntrinsicWidth(),    

    46.                                             drawable.getIntrinsicHeight(),    

    47.                                             drawable.getOpacity() != PixelFormat.OPAQUE ? Bitmap.Config.ARGB_8888    

    48.                                                             : Bitmap.Config.RGB_565);    

    49.             Canvas canvas = new Canvas(bitmap);    

    50.             drawable.setBounds(0, 0, drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight());    

    51.             drawable.draw(canvas);    

    52.             return bitmap;    

    53.     }    

    54.     }  

    然后在主程序里

    [c-sharp] view plaincopy

    1. final GridView gv = (GridView) findViewById(R.id.grid);  

    2.                 ImageList adapter = new ImageList(available.this);  

    3.                 Resources res=getResources();    

    4.                 Bitmap bmp=BitmapFactory.decodeResource(res, R.drawable.logo);    

    5.                 adapter.image=new Bitmap[20];  

    6.                 for(int i=0;i<=19;i++)  

    7.                 {  

    8.                     adapter.image[i]=bmp;  

    9.                 }  

    10. gv.setAdapter(adapter);  

    11.                 gv.setOnItemClickListener(new OnItemClickListener() {  

    12.                     @Override  

    13.                     public void onItemClick(AdapterView<?> arg0, View arg1,  

    14.                             int arg2, long arg3) {  

    15.                         // TODO Auto-generated method stub  

    16.                         Log.i("phb", arg2 + "");  

    17.                         Log.i("phbsel",gv.isFocused()+"");  

    18.                         Intent i=new Intent(available.this, com.mobile.links.shop.mycx.shopcart.class);  

    19.                         startActivity(i);  

    20.                     }  

    21.                 });  

    22.                gv.setOnItemSelectedListener(new OnItemSelectedListener(){  

    23.                 @Override  

    24.                 public void onItemSelected(AdapterView<?> arg0, View arg1,  

    25.                         int arg2, long arg3) {  

    26.                     // TODO Auto-generated method stub  

    27.                     Log.i("selected",arg2+"");  

    28.                     tv.setText(arg2+":detail");  

    29.                 }  

    30.                 @Override  

    31.                 public void onNothingSelected(AdapterView<?> arg0) {  

    32.                     // TODO Auto-generated method stub  

    33.                       

    34.                 }  

    35.                      

    36.                });  

    37.                   

    其中onClick函数是判断被点击

    而onSelect函数是判断被选中 也就是获得焦点的imageview

    这样我们就可以基于gridview来做一些应用了。

    构建gridview的xml代码

    [c-sharp] view plaincopy

    1. <?xml version="1.0" encoding="utf-8"?>  

    2. <LinearLayout  

    3. android:id="@+id/relativelayout"  

    4. android:layout_width="fill_parent"  

    5. android:layout_height="fill_parent"  

    6. xmlns:android="http://schemas.android.com/apk/res/android"  

    7. android:orientation="vertical"  

    8. >  

    9. <GridView android:id="@+id/availgrid"   

    10.   android:layout_width="fill_parent"   

    11.   android:layout_height="wrap_content"   

    12.   android:numColumns="4"   

    13.   android:verticalSpacing="30dp"   

    14.   android:layout_centerHorizontal = "true"  

    15.     

    16.   />   

    17.    

    18.    

    19. </LinearLayout>  

  • 相关阅读:
    正则表达式笔记(re.search/re.match/re.split/re.compile/用法)
    python爬虫笔记(五)网络爬虫之提取—信息组织与提取方法(3)基于bs4库的HTML内容查找方法
    python爬虫笔记(五)网络爬虫之提取—信息组织与提取方法(2)信息提取的一般方法
    Ubuntu安装anaconda3
    python爬虫笔记(五)网络爬虫之提取—信息组织与提取方法(1)信息标记的三种形式
    python爬虫笔记(四)网络爬虫之提取—Beautiful Soup库(3)基于bs4库的格式化和编码
    python爬虫笔记(四)网络爬虫之提取—Beautiful Soup库(2)基于bs4库的HTML内容遍历方法
    Python爬虫从入门到放弃(十五)之 Scrapy框架中Spiders用法
    Python爬虫从入门到放弃(十四)之 Scrapy框架中选择器的用法
    Python爬虫从入门到放弃(十三)之 Scrapy框架的命令行详解
  • 原文地址:https://www.cnblogs.com/ablansetaimeng/p/4061963.html
Copyright © 2011-2022 走看看