当前位置:  编程技术>移动开发
本页文章导读:
    ▪Adapter引见        Adapter介绍 Adapter介绍    Adapter是将数据绑定到UI界面上的桥接类。Adapter负责创建显示每个项目的子View和提供对下层数据的访问。 支持Adapter绑定的UI控件必须扩展AdapterView抽象类。创建自.........
    ▪ N900开箱照及Droid对照        N900开箱照及Droid对比 今天收到从 Nokia 芬兰总部 DHL 国际快递过来的 N900  ( N900 的来历详情见此) ( DHL 还真快, 2 天就送到了!) 里面附有 Nokia 宣传促销负责人 Katja 的亲笔信(她也就是上次抽奖.........
    ▪ 3ds max座标转换成opengl 坐标系       3ds max坐标转换成opengl 坐标系 原理不分析了,直接上数据分析 Max: Quat: (quat -0.772327 0.105251 0.0845889 0.620708) OGL: Quat:: -0.772327 , 0.084589 , -0.105251 , 0.620708   Max: Position: [-29.6717,-109.273,7.91.........

[1]Adapter引见
    来源: 互联网  发布时间: 2014-02-18
Adapter介绍
Adapter介绍
   
Adapter是将数据绑定到UI界面上的桥接类。Adapter负责创建显示每个项目的子View和提供对下层数据的访问。



支持Adapter绑定的UI控件必须扩展AdapterView抽象类。创建自己的继承自AdapterView的控件和创建新的Adapter类来绑定它们是可能的。



一些Android提供的Adapter介绍



在多数情况下,你不需要白手创建自己的Adapter。Android提供了一系列Adapter来将数据绑定到UI Widget上。



因为Android负责提供数据和选择用于显示每个项目的View,所以Adapter能快速地修改要绑定的控件的外观和功能。下面的列表显示了两个最有用和最通用的本地Adapter:



❑ ArrayAdapter

ArrayAdapter是一个绑定View到一组对象的通用类。默认情况下,ArrayAdapter绑定每个对象的toString值到在layout中预先定义的TextView控件上。可变通的,构造函数允许你使用更加复杂的layout或者通过重写getView方法来扩展类从而使用TextView的替代物(如ImageView或嵌套的layout)。



❑ SimpleCursorAdapter

SimpleCursorAdapter绑定View到Content Provider查询返回的游标上。指定一个XML layout定义,然后将数据集中的每一列的值绑定到layout中的一个View上。



接下来的章节将深入挖掘这些Adapter类的细节。例子中,提供了绑定数据到ListView上,尽管这个逻辑会和其他一些AdapterView类(如Spinner和Gallery)工作的一样。



使用Adapter进行数据绑定



将Adapter应用到继承自AdapterView类上,你需要调用View的setAdapter方法,传入一个Adapter实例,如下面的片段所示:



ArrayList<String> myStringArray = new ArrayList<String>();

ArrayAdapter<String> myAdapterInstance;

int layoutID = android.R.layout.simple_list_item_1;

myAdapterInstance = new ArrayAdapter<String>(this, layoutID, myStringArray);

myListView.setAdapter(myAdapterInstance);



这个片段显示了最简单的情况,将数组中的字符串绑定到ListView中用于显示每个项目的简单TextView控件上。



接下来的第一个例子显示了如何绑定一组复杂的对象到ListView上,使用一个自定义的layout。第二个例子显示了如何使用SimpleCursorAdapter来绑定查询结果到ListView中的自定义layout上。


    
[2] N900开箱照及Droid对照
    来源: 互联网  发布时间: 2014-02-18
N900开箱照及Droid对比

今天收到从 Nokia 芬兰总部 DHL 国际快递过来的 N900  ( N900 的来历详情见此) ( DHL 还真快, 2 天就送到了!)

里面附有 Nokia 宣传促销负责人 Katja 的亲笔信(她也就是上次抽奖的那个 mm 哦~~~)

开箱, 包装比 Droid 要正很多!

还有很多配件, 里面竟然有输出音频和视频的连接线

开机屏幕(和 Droid 对比), Droid 稍微大点

浏览器对比, N900 浏览器速度比 Droid 快了貌似一倍

N900 可以直接在浏览器里面播放Flash(图里是油条帮的视频)

下面 Droid 是内置 YouTube 的 app 在播放宽屏高清视频,同一个视频对比, Droid 的质量是明显高了几个档次。

使用一天后的感受

  • N900 是移动计算平台( Mobile Computing Platform ), 然后带有电话功能.  和 Android 从开发的出发点就是移动手机系统, 有本质上的区别.  这也决定了两个平台很不同的设计哲学.
  • Maemo 是比 Android 更底层, 更接近 Linux 的系统.  Android SDK 是 Linux 封装后的一个应用层接口, 适合开发应用软件.  Maemo 可以直接开发系统级软件, 而且很多 Linux 的项目可以很方便的移植过来.

  • N900 上的 3D 游戏: Bounce.  使用了加速仪 Accelerometer 和 OpenGL ES.  画面很不错, 和 iPhone 的 3D 游戏不相上下; 比 Android 显然已经超越了.
  • 还可以输出到电视上玩

  • 直接支持多个 Email 系统, 比如 Hotmail, Yahoo, AOL 等.  这比 Android 已经强大多了.  Android 目前还没有以上 email 的支持.
  • 目前还不知道如何同步 gmail 里电话联系人到 N900 上, 可以同步 email/gtalk 用户.
  • GPS/Map 还没成功过, 不知道是什么原因, 有一次还 crash 了.  这点 Android 上的 Google Map 真是强大.  没得比.
  • 据说支持 AVI,MPG,等视频格式.  上传几个测试小电影都没播放成功.   -___-#
  • 下载 N 个软件后, 竟然说没有磁盘空间报错.  后来发现原来是临时下载文件夹满了, 竟然需要重启才能清理掉.  这个设计真傻 X.
  • Maemo 已经有 GameBoy, GameBoy Advance, NES 的模拟器了 ^_^
  • 电阻屏幕还是没有电容屏幕敏感, 借助自带的笔才有所改善.
  • 5 百万像素卡尔.蔡司镜头, 嘿嘿, Nokia 硬件向来都不错.

Maemo 5 会是个强大的移动计算平台, 但和专攻智能手机平台的 iPhone 和 Android, 显然还有较大的差距.

iPhone 可以说是目前最强大的 OS, 越狱后的 iPhone 比 Maemo 5 还强大; 然后 iPhone 自带的 SDK 比 Android 在很多方面都强大.  非常佩服设计 iPhone OS 的 Apple 团队.

Android 是个应用层的操作系统, 开发者其实和底层的 Linux 没怎么打交道.  这点可以让手机开发商抢占中低端智能手机市场, 但高端市场目前唯有 iPhone OS 在鹤立鸡群中.

当然最后还是要感谢下 Nokia Maemo 团队相送的 N900, 我会慢慢摸索滴~~~~~

补充几点:
- Droid 机重 6 盎司, N900 机重 6.4 盎司, N900 几乎比 Droid 厚一倍
- N900 前端还有个摄像头, 估计可以视频通话了.  双摄像头还可以开发很多有趣的应用.
- N900 电池损耗很快, 大概 6 个小时内会全部用完… 1320 mA 的电池啊!  和 Droid 一样.
- Droid 屏幕比 N900 更清脆, 做工质量更好
- Android 的 SDK 比 Maemo 的要更容易开发, 强大的平台还需要开发者的青睐才行!

5 楼 mikeandmore 2009-11-15  
快被iphone搞死了的飘。。。
6 楼 liqiuxi 2009-11-15  
额。。。。那句话,人傻钱多小姐多。
7 楼 vlinux 2009-11-15  
我和我同事一起买的Android和IPHONE,他选了水果而我选了骨骼...结果我是无限的后悔...

如果上天再给我一次选择的机会,我一定会选择IPHONE,可惜,没钱了...如果让我给人推荐,IPHONE绝对是不二的选择!!!
8 楼 rubynroll 2009-11-15  
vlinux 写道
嵌入式开发并不是我的专长,所以我闹了什么笑话还请多多海涵。我也知道你的意思,基于VM的开发当然会受到众多的制约,但我觉得你理解错我的意思了。我同意在vm上开发千差万别,不过我认为在linux应用的开发、迁移上两者并无太大区别。我曾经从对交叉编译一无所知到勉勉强强让vsftpd在我的htc magic上跑起来只用了一整天的时间。说明只要程序写得规范,迁移过来其实并不难。android只是个linux的发行版,没听说过在ubuntu上和在redhat上开发程序有本质的区别呀。


虽然勉强可以说Android是一个“Linux 发行版”,但是这个“发行版”和其它Linux发行版还是有点区别的。GNU老大之所以老是抱怨Linux应该叫GNU/Linux,是因为通常的Linux发行版在应用层严重依赖于GNU库和软件集。Maemo和其他桌面Linux发行版模式差不多,主要的工作就是封装了一套适合小屏幕的GUI库以及其他辅助的库,其核心和桌面系统没有什么区别,因此桌面应用程序可以比较容易地移植到Maemo上,例如我只要花半天时间就可以让RubyGnome2在Maemo上跑起来。

而Android不同。Android在应用层建立Dalvik JVM,所有的"Android app"都是在这个JVM中运行。在Linux ABI之上,除了libc,Android没有依赖多少库,甚至连shell都不用提供。所有的辅助的库(例如多媒体解码等)都是为Dalvik服务,通过JVM暴露给应用程序API。Android通过JVM隔离了应用程序与内核,Java运行环境是Android的official环境。
因此,想通过简单的交叉编译来移植一个桌面程序到Android并不容易,有时候其痛苦程度和自己搞一个发行版差不多。

理解Android和Maemo的架构不同就很好理解N900和Droid的差异了(N900和Droid采用的都是TI的CPU,ARM A8+DSP):
* Maemo和Android的浏览器都是基于WebKit库,但是Maemo上层是C,而Android隔了个JVM,自然Maemo快。而播放媒体,解码部分都是C的份,因此性能不会有太大的差别,而显然Google在媒体解码方面下了更多的功夫因此Droid视频显示效果会好些,如果Android的改进再回馈到社区,N900应该也会有同样的表现。
* 可用性:Maemo是社区贡献多,Nokia在幕后操纵;而Android是Google主导开发,开放给社区。因此Google会花很多努力提供对自己有利的精品app,例如Google Maps;而Maemo则会面临众口难调的问题。但由于Maemo贴近桌面系统,因此在应用程序的多样性方面拥有极大的优势,例如Gameboy模拟器。Android要想在应用程序多样性方面有突破就要看Android Market是否能取得成功。iPhone则是另一个极端,apple完全封闭内核,仅开放SDK。apple完全控制,因此有条件提供一流的可用性,加上app store的成功,程序多样性一样很丰富。
* SDK: Maemo的SDK和桌面系统的SDK类似,开发模式也类似,比较自由,开放。Android只提供基于JVM的SDK,Google定义规范,文档齐全,容易使用。iPhone则延续Apple的一贯作风:有限开放,用框架限制你,但用起来效果很爽。

Maemo是爱好自由者的选择,Android是追求实用并且贪便宜者的选择,iPhone是追求卓越并且想Cool一把的选择。



9 楼 clonepig 2009-11-16  
admire u................money
10 楼 proper 2009-11-16  
vlinux 写道
嵌入式开发并不是我的专长,所以我闹了什么笑话还请多多海涵。我也知道你的意思,基于VM的开发当然会受到众多的制约,但我觉得你理解错我的意思了。我同意在vm上开发千差万别,不过我认为在linux应用的开发、迁移上两者并无太大区别。我曾经从对交叉编译一无所知到勉勉强强让vsftpd在我的htc magic上跑起来只用了一整天的时间。说明只要程序写得规范,迁移过来其实并不难。android只是个linux的发行版,没听说过在ubuntu上和在redhat上开发程序有本质的区别呀。



呵呵,不是闹什么笑话,大家只是技术讨论而已.抛砖引玉.

楼上的rubynroll分析的已经很全面了,而且很深入.

总得来说,android对于开发应用程序的人来说,目前还是很局限于Delvik的JVM,不能算是linux的一个版本.跟以前的J2ME的linux机器是没有本质区别的. 感觉以后NDK有了进一步的发展,才能看出不同来.
11 楼 dxq530610286 2009-11-16  
刚看到你买了DROID  现在又有总部寄的N900   太牛了 
12 楼 vlinux 2009-11-16  
恩,看了rubynroll同志异常清晰的回复后,总算有点基本的理解了,谢谢你。

但是结果更是迷茫了...在众多智能机面前,我的选择更不清晰,有点跌入大海的感觉。先慢慢来好了,既然有了HTC Magic,我先搞清楚Android..恩恩
13 楼 lordhong 2009-11-16  
rubynroll大哥是只大牛, 大家多多follow他 ^_^

iPhone OS还是最强大的, 可进可退, 官方版和越狱版各有所长, 真是大爱.

android自己封装了linux, 一些linux开源社区的同志都很不满, google其实是非常邪恶的
14 楼 moderating 2009-11-16  
关于D900的系统,Maemo,刀哥能不能多说点,很关心啊
15 楼 rubynroll 2009-11-16  
lordhong 写道
rubynroll大哥是只大牛, 大家多多follow他 ^_^

iPhone OS还是最强大的, 可进可退, 官方版和越狱版各有所长, 真是大爱.

android自己封装了linux, 一些linux开源社区的同志都很不满, google其实是非常邪恶的


大牛不敢当,术业有专攻,我只是在嵌入式方面还算了解。

在应用层Android怎么折腾其实和Linux社区关系都不大,麻烦的是Google Android要插手内核,这个惹恼了些人。

狭义上说“Linux”其实仅仅是个内核,Linux内核通过系统调用等方法向应用层暴露功能。和传统Unix不同,Linux内核开发异常活跃,一些大胆的想法不断持续涌现,当这些想法被mainstream采纳以后有可能造成对应用层的接口的变动。这个变动有时候对Linux发行版来说是非常麻烦的,这就是为什么很多Server发行版采用的内核版本都比较”老“,保持稳定是这些Server的一大要求。

同样,Google也不希望Android面临同样的难题,Google希望Linux内核保持相对稳定,因此也想在内核空间也建立一套自己的规范,希望最大限度减少内核升级带来的影响,而这样的规范是不可能在Linux社区得到一致认可的。IBM做不到,RedHat做不到,Google也做不到,因为Linux是属于所有人的。

Linux内核社区存在一些非常有争议的做法与传统,这些就是Linux内核社区的文化,你可以有一千个理由说它不好,但却是它造就Linux,并且继续引领Linux前行,fearlessly.

Google要想让Android稳定,lock-in在一个特定内核版本是不现实的,只能尽量不依赖于Linux的新特性,使用稳定的久经考验的接口(这一点其实Android做的很漂亮,通过JVM搞定一切),适当的抽象,并且通过自己的补丁渠道去弥平内核差异,适当的时候插手一下内核(如电源管理),就算有人不满也就算了,保持低调就行。

反观Maemo,我估计Nokia后面的麻烦事情还多着呢,好在Maemo有一个活跃的社区帮忙擦屁股,但可以断定Maemo核心部件之外的稳定性在很长一段时间内都会有问题,也因此Nokia不会放弃Symbian。

iPhone OS之所以强大,稳定是因为apple有full control:我有multi-tasking,但是我就是不信任你能用得好,就是不开放给你,你能怎样?

16 楼 renci 2009-11-17  
一张图都看不见
17 楼 Joo 2009-11-17  
今天看到老大你对比N900跟Droid的文章,有比较明显的一边倒的情形
因为之前也看过你不少有关android开发的文章,知道你不会无缘由的给出如此评价。我现在正在选型中,虽然说都是linux系统(如果水果硬要算一个的话也可以说是类UNIX系统),你觉得这三个发展前景如何?
不太明白你说的计算平台+电话功能, 和移动智能平台的区别, 解释解释?

另外现在手上有些闲钱,不知道是等Droid呢还是先上个HERO顶一顶,二者硬件方面差别是否很大? 或者有一些Android 2.0的应用在HERO上做不了?
非常感谢!
18 楼 dandy 2009-11-20  
andriod在游戏方面的表现还是一贯的弱。
19 楼 lordhong 2009-11-20  
Joo 写道
今天看到老大你对比N900跟Droid的文章,有比较明显的一边倒的情形
因为之前也看过你不少有关android开发的文章,知道你不会无缘由的给出如此评价。我现在正在选型中,虽然说都是linux系统(如果水果硬要算一个的话也可以说是类UNIX系统),你觉得这三个发展前景如何?
不太明白你说的计算平台+电话功能, 和移动智能平台的区别, 解释解释?

另外现在手上有些闲钱,不知道是等Droid呢还是先上个HERO顶一顶,二者硬件方面差别是否很大? 或者有一些Android 2.0的应用在HERO上做不了?
非常感谢!



我貌似几天前回复过帖子了啊, JE抽风了????
20 楼 xml 2009-11-23  
rubynroll 写道
vlinux 写道
嵌入式开发并不是我的专长,所以我闹了什么笑话还请多多海涵。我也知道你的意思,基于VM的开发当然会受到众多的制约,但我觉得你理解错我的意思了。我同意在vm上开发千差万别,不过我认为在linux应用的开发、迁移上两者并无太大区别。我曾经从对交叉编译一无所知到勉勉强强让vsftpd在我的htc magic上跑起来只用了一整天的时间。说明只要程序写得规范,迁移过来其实并不难。android只是个linux的发行版,没听说过在ubuntu上和在redhat上开发程序有本质的区别呀。


虽然勉强可以说Android是一个“Linux 发行版”,但是这个“发行版”和其它Linux发行版还是有点区别的。GNU老大之所以老是抱怨Linux应该叫GNU/Linux,是因为通常的Linux发行版在应用层严重依赖于GNU库和软件集。Maemo和其他桌面Linux发行版模式差不多,主要的工作就是封装了一套适合小屏幕的GUI库以及其他辅助的库,其核心和桌面系统没有什么区别,因此桌面应用程序可以比较容易地移植到Maemo上,例如我只要花半天时间就可以让RubyGnome2在Maemo上跑起来。

而Android不同。Android在应用层建立Dalvik JVM,所有的"Android app"都是在这个JVM中运行。在Linux ABI之上,除了libc,Android没有依赖多少库,甚至连shell都不用提供。所有的辅助的库(例如多媒体解码等)都是为Dalvik服务,通过JVM暴露给应用程序API。Android通过JVM隔离了应用程序与内核,Java运行环境是Android的official环境。
因此,想通过简单的交叉编译来移植一个桌面程序到Android并不容易,有时候其痛苦程度和自己搞一个发行版差不多。

理解Android和Maemo的架构不同就很好理解N900和Droid的差异了(N900和Droid采用的都是TI的CPU,ARM A8+DSP):
* Maemo和Android的浏览器都是基于WebKit库,但是Maemo上层是C,而Android隔了个JVM,自然Maemo快。而播放媒体,解码部分都是C的份,因此性能不会有太大的差别,而显然Google在媒体解码方面下了更多的功夫因此Droid视频显示效果会好些,如果Android的改进再回馈到社区,N900应该也会有同样的表现。
* 可用性:Maemo是社区贡献多,Nokia在幕后操纵;而Android是Google主导开发,开放给社区。因此Google会花很多努力提供对自己有利的精品app,例如Google Maps;而Maemo则会面临众口难调的问题。但由于Maemo贴近桌面系统,因此在应用程序的多样性方面拥有极大的优势,例如Gameboy模拟器。Android要想在应用程序多样性方面有突破就要看Android Market是否能取得成功。iPhone则是另一个极端,apple完全封闭内核,仅开放SDK。apple完全控制,因此有条件提供一流的可用性,加上app store的成功,程序多样性一样很丰富。
* SDK: Maemo的SDK和桌面系统的SDK类似,开发模式也类似,比较自由,开放。Android只提供基于JVM的SDK,Google定义规范,文档齐全,容易使用。iPhone则延续Apple的一贯作风:有限开放,用框架限制你,但用起来效果很爽。

Maemo是爱好自由者的选择,Android是追求实用并且贪便宜者的选择,iPhone是追求卓越并且想Cool一把的选择。




虽然咱是嵌入式门外汉,但兄台及楼主的分析让我们了解了很多,容易理解Andriod和Maemo的异同了。
21 楼 mingliangfeng 2009-11-26  
vlinux 写道
我和我同事一起买的Android和IPHONE,他选了水果而我选了骨骼...结果我是无限的后悔...

如果上天再给我一次选择的机会,我一定会选择IPHONE,可惜,没钱了...如果让我给人推荐,IPHONE绝对是不二的选择!!!


能否谈谈原因?
22 楼 風一樣的男子 2009-11-26  
为 Android 努力
23 楼 lordhong 2009-11-27  
mingliangfeng 写道
vlinux 写道
我和我同事一起买的Android和IPHONE,他选了水果而我选了骨骼...结果我是无限的后悔...

如果上天再给我一次选择的机会,我一定会选择IPHONE,可惜,没钱了...如果让我给人推荐,IPHONE绝对是不二的选择!!!


能否谈谈原因?


不要再挖vlinux童鞋的伤疤了...
24 楼 xuehui.hf 2010-02-10  
renci 写道
一张图都看不见


很赞同,频繁变动的内核的确很麻烦,android用vm封闭底层变动对上层的影响,的确是个好主意!Java+C的组合可以说是性能与变化风险的折衷。

    
[3] 3ds max座标转换成opengl 坐标系
    来源: 互联网  发布时间: 2014-02-18
3ds max坐标转换成opengl 坐标系

原理不分析了,直接上数据分析

Max:   
Quat: (quat -0.772327 0.105251 0.0845889 0.620708)    
OGL:   
Quat:: -0.772327 , 0.084589 , -0.105251 , 0.620708   

 

Max:   
Position: [-29.6717,-109.273,7.91964]   
OGL:   
Position:: -29.671656 , 7.919643 , 109.272964  

 

Max:   
Scale: [1.000000, 0.999999, 1.000000 ]   
OGL:   
Scale:: 1.000000 , 1.000000 , 0.999999   

 


    
最新技术文章:
▪Android开发之登录验证实例教程
▪Android开发之注册登录方法示例
▪Android获取手机SIM卡运营商信息的方法
▪Android实现将已发送的短信写入短信数据库的...
▪Android发送短信功能代码
▪Android根据电话号码获得联系人头像实例代码
▪Android中GPS定位的用法实例
▪Android实现退出时关闭所有Activity的方法
▪Android实现文件的分割和组装
▪Android录音应用实例教程
▪Android双击返回键退出程序的实现方法
▪Android实现侦听电池状态显示、电量及充电动...
▪Android获取当前已连接的wifi信号强度的方法
▪Android实现动态显示或隐藏密码输入框的内容
▪根据USER-AGENT判断手机类型并跳转到相应的app...
▪Android Touch事件分发过程详解
▪Android中实现为TextView添加多个可点击的文本
▪Android程序设计之AIDL实例详解
▪Android显式启动与隐式启动Activity的区别介绍
▪Android按钮单击事件的四种常用写法总结
▪Android消息处理机制Looper和Handler详解
▪Android实现Back功能代码片段总结
▪Android实用的代码片段 常用代码总结
▪Android实现弹出键盘的方法
▪Android中通过view方式获取当前Activity的屏幕截...
▪Android提高之自定义Menu(TabMenu)实现方法
▪Android提高之多方向抽屉实现方法
▪Android提高之MediaPlayer播放网络音频的实现方法...
▪Android提高之MediaPlayer播放网络视频的实现方法...
▪Android提高之手游转电视游戏的模拟操控
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3