- 浏览: 3024994 次
- 性别:
- 来自: 上海
-
文章分类
- 全部博客 (893)
- android (110)
- iphone (198)
- java (79)
- JavaScript手册-目录 (9)
- JavaScript手册-Array (19)
- JavaScript手册-Boolean (5)
- JavaScript手册-Date (50)
- JavaScript手册-Math (30)
- JavaScript手册-Number (14)
- JavaScript手册-RegExp (7)
- JavaScript手册-String (38)
- JavaScript手册-全局函数 (8)
- JavaScript实用脚本 (7)
- Others (21)
- java-jpcap (7)
- java-thread (1)
- ibm文章 (3)
- classloader (2)
- java-filter (2)
- 运行环境 (33)
- java-正则 (2)
- oracle (1)
- linux-shell (26)
- wap (1)
- sqlite (3)
- wow (1)
- jvm (1)
- git (5)
- unity3d (29)
- iap (2)
- mysql (23)
- nginx (14)
- tomcat (9)
- apache (2)
- php (1)
- ubuntu (40)
- rsa (1)
- golang (21)
- appstore (5)
- sftp (2)
- log4j (2)
- netty (18)
- 测试工具 (6)
- memcache (5)
- 设计模式 (1)
- centos (8)
- google_iab (5)
- iOS专题 (4)
- mac (10)
- 安装配置帮助手册 (2)
- im4java_graphicsmagick (5)
- inotify-tools (1)
- erlang (6)
- 微信支付 (1)
- redis (8)
- RabbitMQ (5)
最新评论
-
heng123:
Netty视频教程https://www.douban.com ...
netty4.0.23 初学的demo -
maotou1988:
使用Netty进行Android与Server端通信实现文字发 ...
netty4.0.23 初学的demo -
码革裹尸:
非常感谢,正好用上
android 呼入电话的监听(来电监听) -
rigou:
提示的/222.177.4.242 无法链接到ip地址,是什 ...
通过 itms:services://? 在线安装ipa ,跨过app-store -
duwanbo:
GridView与数据绑定
android开发中的UI控制(四)
转载自: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显示数据:
这种用Grid显示数据在B/S和C/S中比较常见,在手机由于受到屏幕大小限制用这种方式显示数据很不方便,所有一般Grid用来显示一些图标,如系统的应用图片:
下面我们使用系统应用程序的图标创建一个Grid显示所有可运行的应用程序icon。首先需要获取系统所有应用程序列表,在这边可以通过Intent进行查询
//使用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信息。接着编写一个自定义ArrayAdapter 将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" />
运行效果如下:
上面我们通过代码创建ImageView用来显示启动Activity的icon,将它的大小设置成50×50。在GridView布局中,使用自适应的 列布局,系统将根据GridView中每个Item的大小自动划分为n列,同时再设置每个Item之间的间距大小。
GridView和ListView的 用法很像,他们都继承了AbsListAdapter,不同的是GridView用网格布局可以有多个列,而ListView只是单列多行模式。
日期和事件控制,DatePicker和TimePicker: DatePicker用来选取日期而TimePicker用来选取时间。选择日期和时间,在很多应用程序中经常用到,android由于受到手机屏幕大小 的限制无法像其他GUI框架一样创建复杂的布局来显示日期和时间,所以它们在android中的展现比较简洁。
我们可以通过在xml布局文件中通过声明 DatePicker和TimePicker节点来创建者两个对象: res\layout\datetime.xml:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:orientation="vertical" android:layout_height="fill_parent" > <DatePicker android:id="@+id/datePicker" android:layout_width="wrap_content" android:layout_height="wrap_content" /> <TimePicker android:id="@+id/timePicker" android:layout_width="wrap_content" android:layout_height="wrap_content" /> </LinearLayout>
代码很简单,上面就是显示的效果,看起来是不是太大了点,但是考虑到手机上的特殊国情,如果按钮太小可能用触摸屏就不好操作。如果你要控制具体的日期和时间,可以在程序中动态的修改。
@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)); //设置分钟 }
运行效果如下:
上面讲日期设置成2012-12-28,时间是10:10,如果我们没有在代码中修改时间,默认显示的是手机当前的日期和时间。Android还提供了 DatePickerDialog和TimePickerDialog两个对话框让用户可以在对话框中挑选日期和时间,避免这两个控件占用太多的空间。
发表评论
-
Android Fragment 真正的完全解析(下)
2015-03-25 14:30 1142Android Fragment 真正 ... -
Android Fragment 真正的完全解析(上)
2015-03-25 10:14 939Android Fragment 真正的 ... -
Activity的生命周期方法
2015-03-25 09:54 606一:Activity的生命周期方法 Android ... -
Android在layout xml中使用include
2015-03-25 07:28 1023在Android的layout样式定义中,可以使 ... -
一个支持圆角的快速ImageView:RoundedImageView
2015-03-07 09:50 11121一个支持圆角的快速ImageView:Rounded ... -
ImageView图片设置
2015-03-05 23:08 986显示任意图像,例如图标。ImageView类可以加载 ... -
ListActivity的onListItemClick不响应的解决办法
2015-03-04 17:57 1133ListActivity的onListItemClic ... -
ListView中有控件隐藏或显示造成的显示错误问题
2015-03-03 23:03 1879ListView中有控件隐藏或显示造成的显示错误问题 ... -
Android中Application类用法
2015-03-03 09:12 1024Android中Application类用法 ... -
Android使用Application总结
2015-03-03 09:11 1217Android使用Application ... -
在android中运行java main方法
2015-02-27 10:38 1029在android中运行java main方法 ... -
android BitmapFactory.Options
2015-02-19 21:01 1057public Bitmap inBi ... -
android 基础demo例子
2015-02-16 21:06 858demoDatas.add(new DemoBe ... -
Android大图片裁剪终极解决方案
2015-02-15 17:08 2194Android大图片裁剪终 ... -
Android_照相机Camera_调用系统照相机返回data为空
2015-02-15 14:17 1314Android_照相机Camera_调用系统照相机返回 ... -
Android: 打印Bundle内容
2015-02-15 14:11 3024Android: 打印Bundle内容 有的时 ... -
android线程、UI、AsyncTask
2015-02-13 18:06 1304本文是转摘的,看过了觉得很好!所以转了过来!如果你想要 ... -
Fragment中ListView的使用
2015-02-06 23:01 2152Fragment中ListView的使用 直接 ... -
在安卓开发时用酷派手机无法打印出应用内的日志的解决方法
2014-12-11 20:39 1225在安卓开发时用酷派手机无法打印出应用内的日志的解决方法 ... -
查看安卓APK文件证书的方法
2014-12-04 10:05 1053************************** ...
相关推荐
6. **DialogFragment**:对话框在Android应用中广泛应用,DialogFragment是Android官方推荐的方式,它继承自Fragment,可以方便地管理和控制对话框的显示与消失。 7. **动画(Animation)**:Android支持属性动画...
本文将深入探讨Android 8.1版本的SystemUI源码,介绍其结构、工作原理以及如何利用提供的gradle配置进行开发。 首先,让我们来看看`SystemUI`的构成。SystemUI组件主要由以下几个部分组成: 1. **StatusBar**:...
在Android开发中,UI部分是构建用户界面的关键,它决定了应用程序的外观和用户体验。本教程主要涵盖Android UI设计的基础知识。 1. 用户界面(UI)理解 用户界面是人与机器交互的桥梁,尤其在当前高度竞争的软件...
在Android系统架构中,SystemUI位于应用层与系统服务层之间,它提供了通知中心、状态栏、快速设置面板、锁屏界面以及各种系统级别的交互控件。深入理解SystemUI的源代码对于开发者优化系统UI性能、自定义系统行为或...
尽管AbsoluteLayout在Android SDK 2.3.3之后不再推荐使用,但在早期版本中,它可以允许开发者精确控制每个子视图的位置,通过设置`android:layout_x`和`android:layout_y`属性。然而,由于其不适用于不同屏幕尺寸和...
Android开发自定义View之仿米家APP双色灯控制UI:做一个智能家居产品的简单智能灯UI https://blog.csdn.net/xh870189248/article/details/80486158
在本资源中,"老罗Android开发视频教程 (android常用UI编程) 26-33集源码.zip"是一个包含Android应用开发教学内容的压缩文件。老罗,可能指的是知名的技术讲师罗永浩,以其通俗易懂的讲解风格而闻名。这个教程聚焦于...
在Android开发领域,UI设计是至关重要的一环,它直接影响到应用程序的用户体验和视觉吸引力。"Android新手UI集合全"这个资源包,显然为初学者提供了一整套的UI设计元素,帮助他们快速理解和实践Android应用界面的...
在Android开发过程中,UI设计是至关重要的一个环节,而颜色管理是UI设计中的核心部分。开发者经常需要知道屏幕上的各种UI元素所使用的具体颜色值,以便在代码中精确地重现这些颜色。本教程将详细介绍如何获取UI的...
Android UI 设计器是Android开发中的一个重要工具,它允许开发者直观地设计应用程序的用户界面,无需手动编写XML布局代码。这个工具极大地提升了开发效率,使得非程序员也能参与到UI设计中来,实现快速预览和调整...
总之,Android Things提供了将Android的丰富UI开发经验应用于物联网设备的机会。通过理解如何在有限的硬件资源上构建和管理UI,开发者可以创造出功能强大且直观的物联网解决方案。sample-simpleui项目就是一个很好的...
在Android应用开发中,UI框架的设计是至关重要的,它直接影响到应用的用户体验和代码的可维护性。"android项目整体UI框架"这个主题主要涵盖了三个方面:自定义Android项目的底部任务栏、实用Fragment的切换以及项目...
在Android开发中,锤子手机以其独特的UI设计风格赢得了众多用户的喜爱。为了实现类似锤子UI的布局,开发者需要深入理解Android布局系统,并掌握一些特殊的设计技巧。本篇将主要探讨如何在Android中仿制锤子UI的格子...
"android 音乐开发 UI素材"这个主题涉及到的是应用程序用户界面中的图形元素,尤其是针对音乐播放功能的按钮和布局设计。酷狗音乐和网易云音乐是两款在中国非常流行的音乐应用,它们的UI设计被广大用户所接受和喜爱...
在Android开发中,UI设计和实现是至关重要的部分。为了提高代码的可维护性和复用性,开发者常常会构建一个统一的UI框架。这个框架旨在规范应用中的界面设计,简化多维度UI管理,减少代码冗余,提升开发效率。本文将...
在Android开发中,模仿流行的移动应用UI布局是提升用户体验和设计水平的重要步骤。易信,作为一款在中国广受欢迎的即时通讯应用,其简洁而高效的设计风格深受用户喜爱。本源码项目专注于重现易信的UI布局,帮助...
在Android应用开发中,线程管理和UI更新是至关重要的部分,因为Android系统为每个应用程序分配一个主线程,也称为UI线程。主线程主要负责处理用户界面的交互,包括绘制和更新视图。然而,执行耗时的操作(如网络请求...
在Android开发中,UI设计是至关重要的一环,它关乎到应用程序的用户体验和视觉吸引力。本压缩包中的"android UI 各种小例子"为初学者提供了丰富的实践资源,旨在帮助开发者掌握基本的Android用户界面设计技巧。每个...
在Android开发领域,初学者经常会面临许多挑战,如理解Android应用程序的基本架构、学习XML布局、掌握Java或Kotlin编程语言,以及如何与...在学习过程中,建议结合官方文档和其他教程,以全面、深入地学习Android开发。
在Android开发中,UI(用户界面)控件是构建应用程序不可或缺的部分。它们为用户提供与应用交互的方式,使得信息展示和操作更加直观。Android系统提供了多种控件,涵盖各种功能,从简单的按钮到复杂的布局。本篇文章...