`
itoracja
  • 浏览: 136811 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

android开发中的UI控制(四)

    博客分类:
  • java
阅读更多
    [size=large;]android开发中的ui控制(四)[/size]
 
转载自:http://www.android777.com/index.php/tutorial/android-view/androids-ui-control-d.html
 
 
列表多值显示是android中一个常用的功能,像是显示所有联系人、所有信息、文件目录等就需要列表显示控制。列表显示可以分为:纵向列表显示、grid网格排列、gallery横向显示。  listview: listview主要用来显示纵向的列表。一般我们通过编写一个继承listactivity的activity类来做展示界面,因为listactivity内置了一个listview对象。通过调用listactivity.setlistadpater将需要显示的数据使用一个adapter绑定到listview中。 
上面可以看到listview的类层次结构,它是一个viewgroup,表明它是一个容器,里面可以放view对象,这边的view对象就是listview里面的一条数据。详细使用方法请看listview教程。 
 
 grid: 很多ui界面都需要使用grid来显示二维数据,grid就像是html中的table用来显示一个表的行列值,grid也可以被用来显示图标,android系统启动后的菜单列出了所有应用就是用grid控制。  用grid显示数据: 
<p style="text-align: center;"><br><img src="http://dl.iteye.com/upload/attachment/530627/006913f9-c594-33d7-8e70-5d707d85a9eb.png" alt="">这种用grid显示数据在b/s和c/s中比较常见,在手机由于受到屏幕大小限制用这种方式显示数据很不方便,所有一般grid用来显示一些图标,如系统的应用图片: 

 
        //使用intent查询出所有的app启动activity信息        intent mainintent = new intent(intent.action_main, null);        mainintent.addcategory(intent.category_launcher);        list<resolveinfo> apps = getpackagemanager().queryintentactivities(mainintent, 0);
 查找出结果后将会存放在一个list<resolveinfo>中,里面包含了所有应用程序的启动activity信息。接着编写一个<a title="listview的使用和特性研究(二)" href="http://www.android777.com/index.php/tutorial/listview-2.html" target="_blank">自定义arrayadapter</a>将list<resolveinfo>显示到gridview中。代码如下:
	    /** called when the activity is first created. */    @override    public void oncreate(bundle savedinstancestate) {        super.oncreate(savedinstancestate);        setcontentview(r.layout.gridview);                gridview gridview = (gridview) findviewbyid(r.id.datagrid);                //使用intent查询出所有的app启动activity信息        intent mainintent = new intent(intent.action_main, null);        mainintent.addcategory(intent.category_launcher);        list<resolveinfo> apps = getpackagemanager().queryintentactivities(mainintent, 0);         gridview.setadapter(new appadapter(this, apps));    }        class appadapter extends arrayadapter<resolveinfo>{    	context mcontext;    	         public appadapter(context context,list<resolveinfo> apps){            super(context,0,apps);            mcontext = context;        }		@override		public view getview(int position, view convertview, viewgroup parent) {			imageview  view ;			             if(convertview == null){                view = new imageview(mcontext);                view.setlayoutparams(new gridview.layoutparams(50, 50));            }else{                view = (imageview) convertview;            }             resolveinfo mresolveinfo = getitem(position);            view.setimagedrawable(mresolveinfo.activityinfo.loadicon(getpackagemanager()));             return view;		}                    }   
 java代码引用的xml布局文件:res\layout\gridview.xml:
<?xml version="1.0" encoding="utf-8"?><gridview xmlns:android="http://schemas.android.com/apk/res/android"    android:id="@+id/datagrid"    android:layout_width="fill_parent"    android:layout_height="fill_parent"    android:padding="10px"    android:verticalspacing="10px"    android:horizontalspacing="10px"    android:numcolumns="auto_fit"    android:columnwidth="80px"    android:stretchmode="columnwidth"    android:gravity="center" 	/>
 
运行效果如下: 
<p style="text-align: center;"><br><img src="http://dl.iteye.com/upload/attachment/530912/3d53e5b2-2e38-3064-ae10-9871131ae045.png" alt="">
    @override    public void oncreate(bundle savedinstancestate) {        super.oncreate(savedinstancestate);        setcontentview(r.layout.datetime);                datepicker dp = (datepicker) findviewbyid(r.id.datepicker);        timepicker tp = (timepicker) findviewbyid(r.id.timepicker);                 dp.init(2012, //年                11,   //月 基于0,所以11代表12月                28,   //日                null);        tp.setis24hourview(true); //使用24小时格式        tp.setcurrenthour(new integer(10)); //设置当前小时        tp.setcurrentminute(new integer(10)); //设置分钟    }
 
运行效果如下:
<p style="text-align: center;"><br><img src="http://dl.iteye.com/upload/attachment/530937/33c7b52c-8dbc-3f00-89a4-eefe66eabe2a.png" alt=""> 
<p style="text-align: left;">   
 
 
 
 
 
 
 
 
 
 
 
0
1
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics