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" />

    当时遇到了个错误

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

  • 相关阅读:
    Oracle 安装报错 [INS-06101] IP address of localhost could not be determined 解决方法输入日志标题
    Linux下安装oracle数据库提示DISPLAY not set. Please set the DISPLAY and try again。
    redhat 关机注销命令详解
    VirtualBox的四种网络连接方式
    修改RedHat的系统显示时间
    insufficient memory to configure kdump(没有足够的内存)解决方法(待验证、待解决)
    xen坑随笔 heartbeat dpkg垃圾数据库清除
    tomcat 监控脚本
    负载均衡随笔
    GIT命令介绍
  • 原文地址:https://www.cnblogs.com/Lynn0814/p/4943897.html
Copyright © 2011-2022 走看看