zoukankan      html  css  js  c++  java
  • GridView实践

         Grid为网格视图,例如实现类似九宫格的效果,可以首选GridView,该组件中的每一个条目通过ListAdapter和该组件进行关联。

    GridViewExample.java代码如下:

     1 package com.example.lenovo.a1106;
     2 import android.app.Activity;
     3 import android.content.Intent;
     4 import android.content.pm.ResolveInfo;
     5 import android.os.Bundle;
     6 import android.view.View;
     7 import android.view.ViewGroup;
     8 import android.widget.BaseAdapter;
     9 import android.widget.GridView;
    10 import android.widget.ImageView;
    11 
    12 
    13 
    14 import java.util.List;
    15 
    16 
    17 public class GridViewExample extends Activity {
    18     private GridView myGridView;
    19     private List<ResolveInfo> myAppIcon;     //声明变量,存放桌面应用程序图标
    20 
    21     @Override
    22     protected void onCreate(Bundle savedInstanceState) {
    23         super.onCreate(savedInstanceState);
    24         setContentView(R.layout.gridview);
    25         myGridView = (GridView) findViewById(R.id.myGrid);
    26         loadAppIcon(); //加载桌面图片
    27         BaseAdapter adapter = new BaseAdapter() {
    28             @Override
    29             public int getCount() {    //项目个数
    30                 return myAppIcon.size();
    31             }
    32 
    33             @Override
    34             public Object getItem(int position) {  //获取指定位置的项目
    35                 return myAppIcon.get(position);
    36             }
    37 
    38             @Override
    39             public long getItemId(int position) {   //获取指定位置项目id
    40                 return position;
    41             }
    42 
    43             //定义每一项显示的内容
    44             @Override
    45             public View getView(int position, View convertView, ViewGroup parent) {
    46                 ImageView imageView;
    47                 if (convertView == null) {
    48                     imageView = new ImageView(GridViewExample.this);
    49                     //创建Image对象
    50 
    51                     imageView.setScaleType(ImageView.ScaleType.FIT_CENTER);
    52                     //设置图片的填充方式,这里按比例拉伸图片
    53                     imageView.setLayoutParams(new GridView.LayoutParams(50, 50));
    54                     //设置ImageView的大小为50*50
    55                 } else {
    56 
    57                     imageView = (ImageView) convertView;
    58                 }
    59                 ResolveInfo info = myAppIcon.get(position);
    60                 //获取myAppIcon中下标为position的ResolveInfo
    61                 imageView.setImageDrawable(info.activityInfo.loadIcon(getPackageManager()));
    62                 return imageView;
    63 
    64             }
    65         };
    66        myGridView.setAdapter(adapter);
    67 
    68       //  myListView.setAdapter(adapter);
    69     }
    70 
    71     private void loadAppIcon() {
    72 
    73         Intent mainIntent = new Intent(Intent.ACTION_MAIN, null);
    74         //创建Intent
    75         mainIntent.addCategory(Intent.CATEGORY_LAUNCHER);
    76         //添加桌面应用程序列表到Intent
    77         myAppIcon = getPackageManager().queryIntentActivities(mainIntent, 0);
    78     }
    79 }
    View Code

    gridview.xml代码如下:

     1 <?xml version="1.0" encoding="utf-8"?>
     2 
     3 <GridView
     4     xmlns:android="http://schemas.android.com/apk/res/android"
     5     android:id="@+id/myGrid"
     6     android:orientation="vertical"
     7     android:layout_width="match_parent"
     8     android:layout_height="match_parent"
     9     android:padding="10dp"
    10     android:numColumns="auto_fit"
    11     android:horizontalSpacing="10dp"
    12     android:verticalSpacing="10dp"
    13     android:stretchMode="columnWidth"
    14     android:gravity="center" />

    当时遇到了个错误

    说是空对象,然而没有想到是没有加载布局文件!!!得长记性!!!

  • 相关阅读:
    GNU编码标准
    glade2 与 glade 3 (转)
    简单 gcc 参数
    gtk 主循环函数
    指针与数组关联导致的一些现象
    C语言声明数组变量时,在什么情况下,可不指定数组大小
    文件复制函数的效率比较
    关于VMware虚拟机的上网
    errno的基本用法
    查找数组中最大的2个数
  • 原文地址:https://www.cnblogs.com/Lynn0814/p/4943897.html
Copyright © 2011-2022 走看看