接下来,我们继续看属于LinearLayout的子控件的两个控件:TextView和Button。有关Android界面中可以用到的Widget有哪些我会在以后再描述。
===================
接下来,我们继续看属于LinearLayout的子控件的两个控件:TextView和Button。有关Android界面中可以用到的Widget有哪些我会在以后再描述。
===================
和老彼得,和老彼得、LP看了两次Wall·E。
你当然不能把这本片子当做科幻片来看。一则是它所反应的地球上的垃圾问题很现实;二则是因为很多情节也不能认真的去推敲。
你当然更不能把这本片子当做爱情文艺片来看,不能当做战争片、惊悚片、音乐片(虽然片中出现的Hello Dolly以及Armstrong演唱的La Vie En Rose,以及Wall·E和Eva在Axiom舱外太空中的双人舞都很优美)……甚至不能当做动画片来看(因为我觉得Pixar能把3D做到这个程度,这样的片子已经和在摄影棚里用胶片拍出来的片子没有什么区别,甚至更出色了……)
我,一直很喜欢用暴风影音,但是我今天要说的是:最新版本的暴风影音真TMD是个流氓软件……
首先,升级在我毫不知情的情况下进行,我发现了新的界面时还着实吃了一惊……
其次,在没有任何用户干预的情况下,程序自动保持“不退出”,也就是说,我点那个X想关闭暴风影音的结果只是它被最小化到系统托盘;
第三,最为令人发指的,就是会自作主张的搜索任何“移动媒体”上的影音文件!我的移动媒体实在太多,别的不说,长期作为准固定媒体挂着的移动媒体就有映射到我的SC101上的两个盘符!这两个盘中当然有多媒体文件!于是暴风影音就开始自觉的帮我搜索这两个盘上的影音文件!拜托,我要放影片的时候会通知你,OK?你不要试图做一个影音文件管理程序,好不好?而且,它在搜索我Z盘(通过Samba映射到2F服务器的某个目录)的时候,将我的2F服务器整个弄到瘫痪!
第四,我想在程序设置中关闭这个功能,但是我没有找到……残念……
这样的用户体验,实在让我寒心……
我想,部分是受到了山寨机也即将支持Android的鼓舞,最近我下载了一套Eclipse Ganymede+Android SDK,开始看看在这套著名的API下开发Android应用会是怎样的体验。 不是说以前没有尝试过开发手机下的应用。比如,在我04年用Palm的时候,06年用WM的时候,08年用Symbian的时候……不过都可耻滴放弃了:
好吧,让我来看看Android……
===================
当然,如何设置ADT(Android Eclipse Plugin)我就不说了(什么,你不知道怎么玩Eclipse?这个这个……);怎么用Wizard来创建基本的框架我也不多说了。我只说说接下来我做的事情。 首先,我先创建了一个Run的配置,然后就开始运行。Android模拟器顺利的启动了,新创建的项目也顺利执行。然后我开始看整个项目的结构:
HelloMyAndroid
├─assets
├─bin
│ └─com
│ └─android
│ └─tr
│ └─testcase
├─res
│ ├─drawable
│ ├─layout
│ └─values
└─src
└─com
└─android
└─tr
└─testcase
在这个结构中:
=================
由于我准备在一个很常规的Hello World程序中增加一些新东西,所以我第一步就开始修改界面。为此,我修改了res/layout/main.xml:
<?xml version=1.0 encoding=utf-8?>
<LinearLayout xmlns:android=http://schemas.android.com/apk/res/android
android:orientation=vertical
android:layout_width=fill_parent
android:layout_height=fill_parent
>
<TextView
android:id=@+id/lblHello
android:layout_width=fill_parent
android:layout_height=wrap_content
android:text=@string/hello
/>
<Button
android:id=@+id/btnClickMe
android:layout_width=fill_parent
android:layout_height=wrap_content
android:text=@string/btn_click_me
/>
</LinearLayout>
我选择使用LinearLayout来线性安排我的控件(在Android中称为“Widget”),而android:orientation=vertical表示这个布局将是竖直方向的;android:layout_width=fill_parent和android:layout_height=fill_parent表示这个布局的宽度、高度都将填充整个父控件的空间(这里就是整个屏幕)。 (未完待续)
好了,旅程即将结束,我们也要回家了……
==========
10月25日一早,我们从泸沽湖出发一路赶回丽江。这将近9个小时的路程实在是很头痛。
到丽江后立刻赶到银器店,然后迅速而彻底的采购了很多东西。当晚,我们搭乘所谓的红眼航班到了成都,随便找了个旅馆住下,次日一早再飞往浦东。
10月26中午时分,我们终于踏上了熟悉的土地。
这一次的度假在GR同学的正确领导下、精心准备下,在TR的充分配合下取得了圆满的成功!
请众BT向肾上、肾后表示祝贺!
10月24日,旅程的第九天,接近尾声的一天。
一早划船出发去了神女峰。湖面很平静,没有候鸟。但是有两颗情人树突兀滴杵在了岸边:
上格姆女神峰可以坐索道,索道很长,落差也很大的说:
【本文收录于Go4Pro.org】 在我的任氏有无轩页面中,有一个专门记载湖人比赛情况的页面。随着NBA 08-09赛季的开幕,这个页面就开始频繁的更新了。
在之前的改版中,我已经将这个页面用Smarty页面重新改写了,这次是要为其加入导出比赛情况到Excel文件的功能。
211103注:本页面已经全面改写。
============
我使用的后台库是PEAR类库中的Spreadsheet_Excel_Writer。安装了PEAR的用户都可以用以下命令安装这个库:
pear install --onlyreqdeps Spreadsheet_Excel_Writer-beta
PEAR还是很方便的。在我的PHP环境中,这个库将安装在<PHP install dir>/PEAR/Spreadsheet下。我习惯将<PHP install dir>/PEAR加入到我的PHP包含路径中去,这样在引用包含文件时可以省力一些。
==========
获取来自数据库的内容等操作就不再赘述,只讲针对Excel导出的部分:
require_once(Spreadsheet/Excel/Writer.php);
$sdate=date(Y-m-d, strtotime($_POST['sYear'].-.$_POST['sMonth'].-.$_POST['sDay']));
$edate=date(Y-m-d, strtotime($_POST['eYear'].-.$_POST['eMonth'].-.$_POST['eDay']));
$rows=getGames($sdate, $edate);
$wb=new Spreadsheet_Excel_Writer();
$wb->send(Laker Games.xls);
$ws=&$wb->addWorksheet(Games_Summary);
$f_title=&$wb->addFormat(array('bold'=>true,
'Align'=>'center',
'Color'=>'blue',
'FgColor'=>'yellow'));
$ws->write(0,0, Game Sequence, $f_title);
$ws->write(0,1, Date Played, $f_title);
$ws->write(0,2, Teams, $f_title);
$ws->write(0,3, Score, $f_title);
$ws->write(0,4, Win/Lose, $f_title);
$ws->write(0,5, Remarks, $f_title);
$rowid=1;
foreach ($rows as $game)
{
$ws->write($rowid,0, $game['seq']);
$ws->write($rowid,1, $game['date']);
$ws->write($rowid,2, $game['team']);
$ws->write($rowid,3, $game['score']);
$ws->write($rowid,4, $game['win']);
$ws->write($rowid,5, iconv('utf-8', 'gb18030', $game['note']));
$rowid++;
}
$wb->close();
==================
大部分代码是自明的。不做太多的说明,结合PEAR关于Spreadsheet_Excel_Writer的文档,应该很容易知道各行代码的作用。
值得注意的是,以上的代码无法在XAJAX的环境下执行。我猜想,原因在于send函数:
function send($filename)
{
header(Content-type: application/vnd.ms-excel);
header(Content-Disposition: attachment; filename=$filename);
header(Expires: 0);
header(Cache-Control: must-revalidate, post-check=0,pre-check=0);
header(Pragma: public);
}
在这个函数中,Writer用header的方式来“欺骗”浏览器,表明将要输出的内容是一个Excel的表格文件。我认为,正是这个HEAD信息破坏了XAJAX(即AJAX)所维系的头信息,造成该函数无法在XAJAX的环境下运行(但是也不出错……)。
Writer并没有提供一个独立的将生成的Excel内容保存起来的函数,有时间、有精力的话在这个方面加以改进应该是不错的。
原文链接:http://www.download.com/2300-2001_4-31.html?tag=mncol;txt 括号内是其可以替换的软件和节省的费用。
1. OpenOffice(Microsoft Office Home Edition,$150或者¥199)
这个我早就一直在用,但是一直没有“正规”的用。关键的问题是,缺少一个Outlook的替代品。当我的PST文件已经以G来计量的时候,如何能保证我的email、联系人、约会、事项等东东能无缝、快速的迁移到新的PIM中,是我在舍弃Office之前必须考虑的一个重大问题。另外,与手持设备之间的同步,也是我必须考虑的问题。在这两个问题得到解决之前,OOO(以及其它所有Office替代软件)还不会被我“正规”应用。
国内已经有了相应的软件,如WPS Office,永中Office等。
2. GIMP(Photoshop,$100)
不得不说,我个人对图像编辑还是没有什么专长。而我现在所使用的图形相关的软件有两个。一个是Picasa,一个是“光影魔术手”。
3. KompoZer, Inkscape, PrimoPDF, Synfig Studio, Jahshanka (Adobe Creative Suite, $200-$2000)
这个我还没有仔细看。我个人并不是网页、Flash设计的高手。而我现在的开发工具,大都是正版的(也就是说,我是付钱了的),如PHPED,Stylizer。
4. AVG Anti-Virus Free Edition; Avira AntiVir Personal Free Antivirus (Norton,McAfee,$40)
我比较喜欢用免费的AVAST,我觉得更好。
5. CamStudio(Camtasia Studio,$300)
嗯,我还没有好好用这个功能。目前还想不到什么急需的应用。
6. Gadwin PrintScreen(SnagIt 9,$50)
哈哈,这个我在用。很不错!只是捕捉的选项比较少,不能连续捕捉。不过,对于免费软件,而且对于我这样一个不是抓图狂的人来说,够用了。
7. 7-Zip**(WinRAR, WinZip,$30)**
我装了7-Zip,但是用的不多。我经常用的Total Commander还没有集成7-zip,所以我一般是用TC里内置的Alt-F5进行压缩(生成zip)的方式。
8. ToneThis(你手机的铃音商店,iTunes商店等,**每首歌1美元左右)**
我是一个很少更换手机铃音的人。而且在国内,铃音可以通过大量免费的MP3获得。
9. IOBit Smart Defrag(Diskeeper,$30)
我用的是另外一个免费的版本,AusLogics Disk Defrag的产品,速度非常快!
10. BurnAware Free, Ashampoo Burning Studio Free(Nero,$80)
很抱歉,我现在很少刻CD了……
11. FolderShare(SugarSync,$25或更多)
其实,我很讨厌用这些远程的工具。现在我进行文件的同步,其实都是借助SVN的说……