`
txf2004
  • 浏览: 6872101 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Android ApiDemos示例解析(121):Views->Grid->1. Icon Grid

 
阅读更多

前面介绍过的ListView, Gallery ,Spinner 等都是AdapterView 的子类,本例GridView 也是AdapterView的子类。AdapterView的显示可以通过数据绑定来实现,数据源可以是数组或是数据库记录,数据源和AdapterView是通过Adapter作为桥梁。通过Adapter,AdatperView可以显示数据源或处理用户选取事件,如:选择列表中某项。

所有AdapterView的数据源都是使用Adapter 作为桥梁, 不同的AdapterView,只是显示数据源的方式不同,ListView 以列表显示显示,Gallery以横向画廊方式,GridView则以二维网格的方式显示,缺省GridView根据所显示的View大小自动计算出每列的个数,也可以通过GridView的setNumColumns(int numColumns)指定列数,或是setColumnWidth(int columnWidth)指定列宽。

本例使用AppsAdapter 读取App Launcher 中所有应用的图标。Adapter的getView 返回一ImageView:

public View getView(int position, View convertView,
 ViewGroup parent) {
 ImageView i;

 if (convertView == null) {
 i = new ImageView(Grid1.this);
 i.setScaleType(ImageView.ScaleType.FIT_CENTER);
 i.setLayoutParams(new GridView.LayoutParams(50, 50));
 } else {
 i = (ImageView) convertView;
 }

 ResolveInfo info = mApps.get(position);
 i.setImageDrawable(info.activityInfo.loadIcon(getPackageManager()));

 return i;
}

Adapter可以返回任意类型的View,比如Button,TextView等,GridView或根据Adapter的getView返回的view 来显示每一项。

同样使用setAdapter 为GridView设置数据源。

setContentView(R.layout.grid_1);
mGrid = (GridView) findViewById(R.id.myGrid);
mGrid.setAdapter(new AppsAdapter());

本例如果将GridView 改成ListView ,应用图标将以列表显示。ListView 和GridView使用同一数据源,不同的只是表现形式(列表或是网格)。这样可以看到对应同一数据源,Android可以支持的表现形式非常多样化。



分享到:
评论

相关推荐

    Android ApiDemos示例解析(26):App->Notification->IncomingMessage

    NULL 博文链接:https://kakukemeit.iteye.com/blog/1806388

    android apidemos示例解析

    android apidemos代码的示例解析,讲的挺全的

    Android ApiDemos apk

    Android ApiDemos apk, 包括Android presentation双屏异显 demon, App>Activity>Presentation

    Android ApiDemos4.4 示例解析

    最新版ApiDemos Android SDK 中带有很多例子,其中ApiDemo 详细介绍了Android 平台主要API,分成了 · App · Content · Graphics · Media · OS · Text · Views 几个大类,每个大类又分为几个小类,...

    jdk-8u202-linux-x64-demos.tar.gz

    demos :jdk-8u202-linux-x64-demos.tar.gz

    最新Android apidemos

    最新Android apidemos

    FairyGUI-Unity-Plugin-3.4.0.zip

    Run demos in Assets/FairyGUI/Examples/Scenes. The UI project is in Examples-UIProject.zip, unzip it anywhere. Use FairyGUI Editor to open it. Using FairyGUI in Unity: * Place a UIPanel in scene by ...

    jdk-8u202-linux-arm64-vfp-hflt-demos.tar.gz

    demos :jdk-8u202-linux-arm64-vfp-hflt-demos.tar.gz

    Android6.0 ApiDemos.apk

    从官方预览包里提取的Android6.0 ApiDemos.apk,方便安装在真机上查看实例的实际效果。

    android的ApiDemos

    API Demos 是 Google 为了 Android 开发者所提供的一个 Android API 合集,其中包含了很多的 API 范例,同时遵循了良好的代码规范,是一个值得开发者研究和学习的典型。android的ApiDemos,需要解压缩后使用。

    Ehlib_6.1.129

    <EhLib Archive> \ Demos \ DBVertGridEh.SimpleDemo \ Project1.dpr compiled project: <EhLib Archive> \ Demos \ Bin \ DBVertGridEh.SimpleDemo.Exe * There are changes in the grids inheritance tree: ...

    android ApiDemos

    android APIdemos,android 源码简单使用demos

    jdk-8u231-solaris-x64-demos.tar.gz

    文件名称: jdk-8u231-solaris-x64-demos.tar.gz 文件大小: 8.43 MB (8,846,115 字节) MD5: 3b62803c4e86b40f1a83b68be7bce224 SHA1: 3aba5de2157163b949179a5b654494da05b4da9c SHA256: 774c5d41a1422d22d026eaaa39...

    Microsoft.Premium.DP-300.by-.VCEup-.82q-DEMOS.pdf

    Microsoft.Premium.DP-300.by_.VCEup_.82q-DEMOS.pdf

    Ehlib6.1.129

    <EhLib Archive> \ Demos \ DBVertGridEh.SimpleDemo \ Project1.dpr compiled project: <EhLib Archive> \ Demos \ Bin \ DBVertGridEh.SimpleDemo.Exe * There are changes in the grids inheritance tree: ...

    LigerUI V1.1.0

    api ------------- API目录 demos ------------- 本地demos目录 lib ------------- 框架源代码目录 index.htm ------------- 主页面 loading.gif ------------- loading图标 welcome.htm ------------- 欢迎页面 ...

    red5-1.0.0-webapps-demos.zip

    r下载后,解压,把解压后的文件直接放入到red5webaaps下

    Android 5.1 ApiDemos.apk

    Android 5.1的ApiDemos安装包

    Android6.0 Api Demos

    该Api Demos 源码是基于Android6.0 ,Eclipse下的,可以直接使用Android studio 导入工程即可。

    Android ApiDemos

    Android 系统原生应用API示例程序集合,是初学Android 开发的重要参考资料 https://github.com/longtaoge

Global site tag (gtag.js) - Google Analytics