咖啡伴侣

呆在上海
posts - 163, comments - 156, trackbacks - 0, articles - 2

Android 2.1 API变更概要:
Live Wallpapers 动态桌面
以下增加的API可以提供你开发动态的桌面:
· android.service.wallpaper.
· WallpaperInfo.
· 升级的WallpaperManager.

附加说明, 如果你的应用相提供Live Wallpapers的功能, 你必须记得增加一个 <uses-feature> 元素到你的应用manifest里面. 宣布这个属性android:name="android.software.live_wallpaper". 举例:<uses-feature android:name="android.software.live_wallpaper" />


电话

· 新的SignalStrength 类提供当前网络信号的一些信息这些信息可以从onSignalStrengthsChanged(SignalStrength) 回调.


· 新的onDataConnectionStateChanged(int, int) 回调.
Views
· 新的View 方法isOpaque()onDrawScrollBars(Canvas).
· 新的RemoteViews 方法addView(int, RemoteViews)removeAllViews(int).

· 新的ViewGroup 方法isChildrenDrawingOrderEnabled()setChildrenDrawingOrderEnabled(boolean).


WebKit
· 新的WebStorage 方法操作网页数据缓存.
· 新的GeolocationPermissions 方法获取 Geolocation permissions 的出处, 把他们设置到 WebView.
· 新的WebSettings 方法管理软件缓存, 网页缓存 和屏幕的缩放.
· 新的WebChromeClient 方法处理视频, 历史记录, 自定义view, 软件缓存限制还有其他

Android 2.0.1 API变更概要:
· 新的快速联系人标记风格(quickContactBadgeStyle)* 属性,让应用的QuickContactBadge 组件接收必要的风格.
· 当在manifest里面宣布了filter,取消了支持 ACTION_CONFIGURATION_CHANGED 广播 ,如果想要去接收这个广播, 这个应用必须注册 registerReceiver(BroadcastReceiver, IntentFilter).
性能上的改变:
Bluetooth
改变了 ACTION_REQUEST_ENABLEACTION_REQUEST_DISCOVERABLE的返回值
· ACTION_REQUEST_ENABLE 如果蓝牙是成功开启的,现在返回RESULT_OK .如果使用者拒绝开启蓝牙的请求,则会返回RESULT_CANCELED .
· ACTION_REQUEST_DISCOVERABLE 如果使用者拒绝启动蓝牙或者蓝牙的可发现功能,则返回 RESULT_CANCELED .
通讯
The ACTION_INSERT Intent returns RESULT_CANCELED in cases where the contact was not persisted (例如剪切保存到一个空的操作里面).
修复错误:
资源
现在framework可以正选择应用资源的根据API等级划分的文件夹(drawable-v4API level4版本用的资源).现在的版本这个功能不能正常工作的问题已经修复.
Contacts
The ACTION_INSERT Intent now returns the appropriate kind of URI when the request is made using the (now deprecated) Contacts APIs.
Other Framework fixes
· getCallingPackage() 现在正确的报告包名, 而不是进程名.

Android 2.0 API变更概要:
Bluetooth
· 开启关闭蓝牙
· 设备和服务发现
· 使用 RFCOMM连接一个可插拔的设备收发数据
· 公布RFCOMM 服务和监听接收 RFCOMM 连接
Sync adapters
· 新的APIs, 同步桥接器连接任何backend
Account Manager
· 集中的帐户管理器 API ,安全的储存和使用可信的tokens/passwords
Contacts
· 新的通信APIs 允许获取多个账户的数据.
· 新的快速通信framework APIs 允许开发者在他们的应用中创建通信标记, 一键点击标记打开一个新的窗口展示一个如何联系当前人的列表.
WebView
· 不赞成使用的类: UrlInterceptHandler, Plugin, PluginData, PluginList, UrlInterceptRegistry.
Camera
· 颜色模式, 场景模式 闪光模式, 焦点模式, 白平衡 旋转和其他设置的新的特征.
· 当缩放级别改变的时候,会回调新的缩放回调接口.
Media
· MediaScanner现在为所有图片生成缩微图when they are inserted into MediaStore.
· 新的缩微图 API : 检索需要的图片和视频的缩微图.
Other Framework
· android.R.style 中新的系统主题,能够更加简单的显示当前acitivities的系统壁纸或者保持之前的activity在后台.新的壁纸管理器API 取代并且增加了wallpaper APIs ,我们可以允许我们的应用要求设置系统壁纸.
· 新的Service APIs帮助应用准确的处理Service 生命周期 ,在指定的低内存状态下service将会被关闭.
o Service.setForeground() 不推荐使用,并且现在这个方法并没有实际执行. .他被一个新的API所取代, startForeground(), that helps (and requires) associating an ongoing notification with the foreground state.
· MotionEvent 如果设备允许的话,MotionEvent 会返回多点触摸信息.最多可同时获取3
· KeyEvent 现在有了新的按键发送 APIs,去帮助实现 action-on-up 和长按键行为, 一个新的机制取消按键 (虚拟按键).
· WindowManager.LayoutParams 现在有了新的常量允许窗口能够在被锁或者其他的状况中唤醒屏幕,这个允许程序能够让例如闹钟等的应用实现唤醒设备.
· New Intent APIs 广播设备的对接状态,当这个设备放在桌面或者停车场,允许程序启动特殊的activity.
Key events executed on key-up
Android 2.0能够使用虚拟按键HOME, MENU, BACKSEARCH,而非物理按键,为了让用户在他们的设备中获得最好的用户体验,android平台现在把这些按键执行加入到了key-up,做了 key-down/key-up 配对,而非只有key-down.,这有助于防止意外按钮事件,并让使用者按下按钮区域,然后拖动而不生成一个事件出来。
这种改变只会影响你的应用程序一点,如果它是拦截按钮事件,最好用key-down,而不是key-up.特例,如果您的应用程序拦截BACK 键,你应该确保你的应用妥善处理按键事件
Android 1.6 API变更概要:
UI framework
· 新的类 android.view.animation 控制动画行为:
o AnticipateInterpolator
o AnticipateOvershootInterpolator
o BounceInterpolator
o OvershootInterpolator
· 新的XML 属性android:onClick ,从一个layout文件描述一个viewView.OnClickListener.
· 对不同分辨率的屏幕的新的支持. 对于BitmapCanvas会执行有针对性的缩放行为.该框架会根据屏幕分辨率和其他内容自动缩放bitmap.
要在你的应用中使用Android 1.6包含的API的话你必须要设置 "4"属性在manifest<uses-sdk> 元素中
Search framework
· 应用程序现在可以公开的有关内容,作为建议放入快速搜索框,新的设备范围内的搜索功能,是可从主屏幕搜索。为了支持这一点,搜索框架增加了新的属性,可搜索的元数据文件。有关完整的信息,请参阅SearchManager
文档。
Accessibility framework
· New android.accessibility package that includes classes for capturing accessibility events and forwarding them to an AccessibilityService handler.
· New AccessibilityService package that lets your application track user events and provide visual, audible, or haptic feedback to the user.
Gesture Input
· 新的gesture API :创建,识别,读取,保存手势.
Text-to-speech
· 新的android.speech.tts 包提供了TTS文本朗读功能,从一个文本生成一个声音文件的回放.
Graphics
·
android.graphics 中的类,现在支持为不同的屏幕尺寸进行缩放.
Telephony
· 新的SmsManager 发送和接受短信.
Utilities
· 新的DisplayMetrics 字段决定当前设备屏幕的密度.
Android Manifest elements
o 新的<uses-feature> 元素
o 新的<supports-screens> 标签
o glEsVersion: 指定最小openGL ES的版本
·
<uses-sdk> 元素的新的属性:
o 目标SDK版本: 应用程序能够指定目标版本. 它能够运行在旧版本(低至minSdkVersion, 他是按照应用程序的指定版本开发的. Specifying this version allows the platform to disable compatibility code that is not required or enable newer features that are not available to older applications.
o maxSdkVersion: 指定设计这个程序运行的最高版本 重要: 当使用 <uses-sdk> 这些属性前请认真阅读文档.
New Permissions
· CHANGE_WIFI_MULTICAST_STATE: 允许应用进入Wi-Fi 多点传送模式.
· GLOBAL_SEARCH: 允许全局搜索系统,以便精确确定 content provider.
· INSTALL_LOCATION_PROVIDER: 允许应用在Location Manager.安装一个location provider.
· READ_HISTORY_BOOKMARKS: 允许应用读取(并不能写) 用户的浏览记录和书签
· WRITE_HISTORY_BOOKMARKS: 允许应用写入 (并不能读) 用户的浏览记录和书签
· WRITE_EXTERNAL_STORAGE: 允许程序写入外部存储器.应用程序使用API级别3下将默认授予此权限 (这对用户可见); 应用程序使用API level4 或者更高的,必须要明确的宣告此权限.

Android 1.5 API变更概要:
UI framework
· Framework for easier background/UI thread interaction
· SlidingDrawer 组件
· HorizontalScrollview 组件
AppWidget framework
· 一些关于创建桌面AppWidget API.
· 提供根据自定义的内容创建LiveFoldersAPI
Media framework
· 原声录音和回放 APIs
· 交互式的MIDI 回放引擎
· 开发者使用的视频录像API (3GP format).
· 视频相片分享 Intents
· 媒体搜索Intent
Input Method framework
· 输入法服务framework
· 文本预测引擎
· 提供具有下载能力的IME给使用者
Application-defined hardware requirements
应用可定义硬件需求,应用程序可以定义 <uses- configuration> 说明此程序需要什么硬件需求.比如是否需要物理键盘或者轨迹球.
Speech recognition framework
· 支持语音识别库.
Miscellaneous API additions
· LocationManager -应用可以接收到位置改变的信息.
· WebView - 触摸start/end/move/cancel  DOM 事件的支持
· 重建Sensor Manager APIs
· GLSurfaceView - 创建OpenGL 应用更加方便的framework .
· 软件升级安装成功的Broadcast Intent - 更加平和优秀的软件升级体验

posted @ 2010-08-02 13:29 oathleo 阅读(683) | 评论 (1)编辑 收藏

很明显UI上的线程安全在Android上控制的也很严格

如果需要做大运算,取网络数据等,得用AsyncTask



AsyncTask

首先AsyncTask是一个抽象类,子类继承AsyncTask必须实现其抽象方法doInBackground(Params…)。同时我们还需要实现onPostExecute(Result),因为结果会在Result中返回。

AsyncTask的生命周期

AsyncTask的生命周期分为四部分,每部分对应一回调方法,我们只需实现这些方法中的某些需要用到的方法。程序执行过程中这些会自动调用它们。

  • onPreExecute():任务执行之前执行,可在这显示进度条。
  • doInBackground(Params…):后台执行,主要用于完成需要任务。执行过程中可以调用publicProgress(Progress…)来更新任务的进度。
  • onProgressUpdate(Progress…):主线程执行,用于显示任务执行的进度。
  • onPostExecute(Result):主线程执行,任务执行的结果作为此方法的参数返回。

AsyncTask中的三种泛型

AsyncTask中的三种泛型类型为Params、Progress、Result。

  • Params:启动任务参数,比如请求的资源地址。
  • Progress:顾名思义,后台任务执行的百分比。
  • Result:后台执行任务返回的结果。

AsyncTask的执行

AsyncTask只能在在主线程中创建实例,创建实例后使用execute(params)执行。任务仅会执行一次,如果想再调用就必须创建新的实例。

具体实现

首先我们先继承实现AsyncTask,然后在主线程的getView()里创建其实例execute().

1、实现AsyncTask

public class DownImageTask extends AsyncTask {
private ImageView gView;
 
protected Bitmap doInBackground(ImageView... views) {
Bitmap bmp = null;
ImageView view = views[0];
HotelListData.Item item;
// 根据iconUrl获取图片并渲染,iconUrl的url放在了view的tag中。
if (view.getTag() != null) {
try {
item = (HotelListData.Item) view.getTag();
URL url = new URL(item.getI().toString());
HttpURLConnection conn = (HttpURLConnection) url
.openConnection();
conn.setDoInput(true);
conn.connect();
InputStream stream = conn.getInputStream();
bmp = BitmapFactory.decodeStream(stream);
Data.imageMap.put(item.getId(), bmp);
stream.close();
} catch (Exception e) {
Log.v("img", e.getMessage());
return null;
}
}
this.gView = view;
return bmp;
}
 
protected void onPostExecute(Bitmap bm) {
if (bm != null) {
this.gView.setImageBitmap(bm);
this.gView = null;
}
}

2、在UI主线程中创建其实例并execute()执行

HotelListData dlData = new HotelListData();
HotelListData.Item item = dlData.new Item();
 
item = (HotelListData.Item) infoVector.getLs().elementAt(position);
holder.text0.setText(item.getN());
 
holder.star.setImageDrawable(getResources().getDrawable(
imageIndex[Integer.parseInt(item.getS().toString())]));
 
holder.text2.setText(item.getP());
holder.text3.setText(item.getA());
 
if (item.getI() != null &amp;&amp; (!item.getI().equals(""))) {
Bitmap bm = returnBitMap(item.getId());
if (bm != null) {
holder.image.setImageBitmap(bm);
} else {
if (!holder.image.isDrawingCacheEnabled()
|| !holder.image.getTag().equals(item.getI())) {
holder.image.setImageResource(R.drawable.img_loading);
holder.image.setTag(item);
try {
new DownImageTask().execute(holder.image);
holder.image.setDrawingCacheEnabled(true);
} catch (Exception e) {
Log.e("error",
"RejectedExecutionException in content_img: "
+ item.getI());
}
}
}
}

简要

首先创建了DownImageTask,该类继承实现了AsyncTask的doInBackground()和onPostExecute(), 如上面所介绍,当在getView中创建实例并execute()传入需要获取资源地址URL(地址在TAG中)执行异步线程任务后,程序首先调用 doInBackground()。

doInBackground()从传入的Image TAG中获取资源的URL地址进行图片的获取,获取完毕Retrun结果给onPostExecute(),onPostExecute()里再去做相应的结果处理。



posted @ 2010-07-30 11:59 oathleo 阅读(1333) | 评论 (1)编辑 收藏

Android Emulator是一款功能非常齐全的模拟器,电话本、通话等功能都可进行模拟。甚至其内置的浏览器和Google Maps都可以联网。用户可以使用键盘输入,击模拟器按键输入,甚至还可以使用鼠标击、拖动屏幕进行操

1.模拟器和真机的不同之处

    * 不支持呼叫和接听实际来电但可以通过控制台模拟电话呼叫(呼入和呼出)

    * 不支持USB连接

    * 不支持相机/视频捕捉

    * 不支持音频输入(捕捉)但支持输出(重放)

    * 不支持扩展耳机

    * 不能确定连接状态

    * 不能确定电池电量水平和交流充电状态

    * 不能确定SD卡的插入/弹出

    * 不支持蓝牙

 

2.参数大全

Android模拟器emulator.exe文件包含了很多参数,平时在Eclipse IDE中模拟器运行自动调用的,如果仅仅使用Android emulator或采用NetBean这样的开放环境又如何设置呢? 我们总结了一下模拟器的所有参数及使用方法,具体如下所示。 

 

 Android Emulator usage: emulator [options] [-qemu args]
  options:
    -system <dir>       read system images from <dir>
    -datadir <dir>      write user data into <dir>
    -kernel <file>      emulated kernel
指定内核文件
    -ramdisk <file>     ramdisk image (default <system>/ramdisk.img) 创建内存磁盘
    -image <file>       system image (default <system>/system.img)
    -initdata <file>    initial user image (default <system>/userdata.img)
    -data <file>        working user image (default <datadir>/userdata-qemu.img)

   
    -nocache            disable the cache partition 禁止分区缓存
    -sdcard <file>      SD card image (default <system>/sdcard.img) 使用SD卡映像
    -skindir <dir>      search skins in <dir> (default <system>/skins) 搜索外观皮肤路径
    -skin <skin>        select a given skin 选择Android模拟器皮肤ID
    -noskin             don't use any emulator skin 不使用任何模拟器外观,这样有助于提高模拟器速度,内存小的用户可以尝试

    -netspeed <speed>   maximum network download/upload speeds 设置网络速度如GPRS、EDGE、3G更多详细的
内容下面有介绍
    -netdelay <delay>   network latency emulation 网络延时设置
    -netfast            disable network shaping (full speed, no latency) 网络全速工作
    -trace <name>       enable code profiling (press F9 to start) 跟踪调试
    -debug-kernel       send kernel output to the console 内核调试
    -console            enable console shell on current terminal 启用控制台
Shell在当前中端
    -nojni              disable JNI checks in the Dalvik runtime 禁用JNI检查
    -logcat <tags>      enable logcat output with given tags 设置log输出标签
    -noaudio            disable android audio support 禁用音频支持
    -useaudio           enable android audio support (default) 启用音频支持
    -mic <file>         WAV file for audio input 使用wav文件模拟mic麦克输入
    -flash-keys         flash key presses on the device skin
    -raw-keys           disable Unicode keyboard reverse-mapping
    -radio <device>     redirect radio modem interface to character device
    -oldradio           enable old VM-based simulated radio
    -onion <image>      use overlay image over screen
    -onion-alpha <%age> specify onion skin translucency (default 50)
    -http-proxy <proxy> make TCP connections through a HTTP/HTTPS proxy
代理服务器设置
    -verbose            enable verbose output
    -verbose-keys       enable verbose key presses
    -verbose-proxy      enable proxy debug messages
    -version            display emulater version number

    -qemu               pass arguments to qemu
    -qemu -h            display qemu help
    -help               print this help

   Default network latency is 'none'

  <proxy> can be one of the following:

    http://<server>:<port>
    http://<username>:<password>@<server>:<port>

  the 'http://' prefix can be omitted. If '-http-proxy <proxy>' is not used,
  the 'http_proxy' environment variable is looked up and any value matching
  the <proxy> format will be used automatically

3.快捷键 

Android模拟器同样存在很多快捷键,当模拟器运行时,可以使用下面的快捷键来操作Android emulator,这样比键盘和鼠标操作更高效,不妨试一下:

D:"unsetup"android-sdk-windows-1.1_r1"tools>emulator.exe -help-keys

 

  When running the emulator, use the following keypresses:

 

    HOME                    Home button 主界面键

    F2, PAGEUP              Menu (Soft-Left) button 左软键

    Shift-F2, PAGEDOWN      Star (Soft-Right) button 右软键

    ESCAPE                  Back button 后退键

    F3                      Call/Dial button 拨号/呼叫键

    F4                      Hangup/EndCall button 结束通话

    F4                      Power button 电源键

    F5                      Search button 搜索键

    KEYPAD_PLUS, Ctrl-F5    Volume up button 增大音量键 

    KEYPAD_MINUS, Ctrl-F6   Volume down button 减小音量键

    Ctrl-KEYPAD_5, Ctrl-F3  Camera button 相机键

    KEYPAD_7, Ctrl-F11      switch to previous layout 返回键

    KEYPAD_9, Ctrl-F12      switch to next layout 后一个界面

    F8                      toggle cell network on/off 禁止/启用所有网络

    F9                      toggle code profiling 开始跟踪

    Alt-ENTER               toggle fullscreen mode 打开/关闭全屏模式

    F6                      toggle trackball mode 打开/关闭轨迹球

    DELETE                  show trackball 显示轨迹球

    KEYPAD_5                DPad center 导航中建/OK键

    KEYPAD_4                DPad left 左键

    KEYPAD_6                DPad right 右键

    KEYPAD_8                DPad up shang 上键

    KEYPAD_2                DPad down 下键

    KEYPAD_MULTIPLY         increase onion alpha

    KEYPAD_DIVIDE           decrease onion alpha

   Ctrl+F11 对模拟器的屏幕切换。

4.模拟器使用注意事项

平时使用emulator测试开发程序时,可能会遇到系统关于C盘空间不足之类的提示,这是由于Android模拟器每次运行时会临时生成几个.tmp后缀的临时文件,一段时间后,其可能占用几G的磁盘空间。所以需要手工定期清理下C:"Documents and Settings"sh"Local Settings"Temp"AndroidEmulator文件夹下的内容。

posted @ 2010-07-29 15:39 oathleo 阅读(536) | 评论 (0)编辑 收藏

    如果有一天,技术高度发达,发达到生产了一种机器,可以接通人的大脑,产生所有人类可以感知的感觉。
人戴上这种帽子样的机器,就进入幻想世界,在幻想的世界里面所有感觉都和真实的一模一样。
    想吃就吃,想睡就睡,想买房就买房,想干坏事就干坏事,想有美女就有美女...
有了这玩意,人类还能进步吗?

   

posted @ 2010-07-27 16:20 oathleo 阅读(1764) | 评论 (7)编辑 收藏

Google获准在中国运营Google.cn域名的ICP牌照于6月30日到期。在美国西部时间6月28日晚间10点(北京时间6 月29日下午1点),Google通过官方博客发布“关于谷歌中国的最新声明”称,在与中国有关部门的沟通中已明确获知,自动指向的做法是不可接受的,继 续进行自动指向,域名Google.cn的ICP牌照将无法通过年检。

感谢google.cn!是我们自己命运不济,出生卑微。

posted @ 2010-07-01 09:45 oathleo 阅读(1965) | 评论 (7)编辑 收藏

应用:javax.script 包

javascrip 操作 java对象。

GEllipse ellipse = new GEllipse();//自定义java对象
//添加上下文绑定数据
SimpleBindings bindings = new SimpleBindings();
bindings.put("ellipse", ellipse);
ScriptEngine engine = sem.getEngineByExtension("js");
engine.setBindings(bindings, ScriptContext.ENGINE_SCOPE);
try{
     engine.eval(" ellipse.setX(101);");//脚本里设置自定义java对象对象属性
     System.out.println(ellipse.getX());//输出101,测试OK
}catch(Exception ex){
    ex.printStackTrace();
}

posted @ 2010-06-30 17:09 oathleo 阅读(1456) | 评论 (1)编辑 收藏

Web的功能会越来越强大,这点基本上没有多少人会反对。想想那么多在各种操作系统下跑的五花八门的应用程序,今天基本都能在Web上找到类似的应用,原因太简单了,现在的客户要求已经随着PC和互联网的发展慢慢提高了,他希望能在iphone里看股票,希望在imac上办公,在blackberry里收邮件,谁能跨这么多复杂而多变的各类系统?

只有Web

Web就离不开浏览器,当然如果更加激进些,哪天整个操作系统都是web,那可能就没有浏览器一说了。就时下来说,Web真的已经发展的很强大了。我们可以在浏览器里看新闻,逛论坛,采购物品,收发邮件,在线协同工作,操作office,游戏等等等等。如果说Web相当于桌面应用程序还有什么软肋的话,那就是浏览器里的图形展示。

说到这篇文章的重点,先大概梳理一下。目前浏览器端的图形展示解决方案。Web里的图形解决方案笔者自己给他大概分两种,一种叫无插件,一种叫有插件。无插件嘛就是浏览器原生支持,就像打开html一样。有插件嘛当然就是要装插件的,插件就类似ActiveX等。

先说说有插件的,里面按使用人数又有大众版和专业版,大众版笔者罗列了几个

1.  FlashFlex

2.  Java Swing,JavaFX

3.  Silverlight

4.  VRML

 

在这几项技术FlashFlex感觉是个比较有前途的方向,面向对象的语言,动静结合的对象,基本各类浏览器都兼容的插件和现实效果,丰富的动态效果和绚丽的展示等,都是目前Web里图形展示的Top one。唯一让人感觉缺憾的是adobe这个设计师出生的公司,总让程序员感觉不爽(要是IBM出的这技术该多好)。所以笔者是对Flex的源码实现比较不齿,这哪里像个精品代码应有的样子。如果说还有什么缺陷,效率是一个,无法集成入搜索是一个,回退算是一个吧。

Swing要在Web展示,只能Applet了,这项被千万java程序员唾骂的技术还是有顽强的生命力。为什么?实在是没有办法,除了它还能谁?(相对java程序员) 其实swing是个很不错的技术,可惜了Sun好像不在意Applet的巨大潜力,只关系它的J2EE去了。唉!好在亡羊补牢,来了个新的JavaFX,只是java程序员已经对Applet心有余悸,JavaFx发展如何,再看看吧。

微软的程序员有大奔头了,因为他们有了SL,看看SL刚刚出来时候,那声势浩大的场面,真的是……如果我是微软程序员,我肯定会搞搞SL,虽然它组件依旧很少,客户端依旧安装率不高。我就不怕,等的就是内置SL,绝对可以秒掉很多Flash的市场。

VRML最近才了解到的一个技术,看了下效果还是很震撼,可能程序员不是很熟原因也是它支持的公司基本都是设计软件的公司。插件的安装率估计是最低的,不了解的不说,一笔带过。

 

上面说完了有插件,下面轮到无插件了,无插件的估计就那几个:

1.       VML

2.       SVG

3.       Canvas

VML(Vector Markup Language) 微软的早期浏览器支持的图形展示的一种格式。最大的特点就是只有IE支持,微软估计当年根本没想到IE的占有率会跌到60%,唉千万不要低估消费者。你不行就靠边,我用鼠标说话。

SVG(Scalable Vector Graphics) 我在无插件里最看好的技术,XML的子集,W3C下的一个项目,早几年不瘟不火的,这几年起来了,何以见得?HTML5的标准,IE9原生支持,看看各大厂家,谁希望被AdobeFlash把持这么大一块市场。当然由于微软的原因IE9以前的版本还都需要插件才能支持SVG

Canvas HTML5里另外一个重头戏,介绍也是很多了,至于为什么会既有SVG又有Canvas我还真的不甚明白,谁知道W3C每天都在琢磨什么呢。最大的特点是2d的方式绘画图形,而不像SVG是标签式的。

posted @ 2010-06-21 21:36 oathleo 阅读(1755) | 评论 (1)编辑 收藏

version jdk1.6

很早就听说了这个功能一直没仔细看看,尝试了下 功能不错!

    public static void main(String[] args) {
        ScriptEngineManager sem = new ScriptEngineManager();
       
        //添加上下文绑定数据
        SimpleBindings bindings = new SimpleBindings();
        bindings.put("aaa_av", new Double(10000.1));
        bindings.put("bbb_av", new Double(20000.2));
       
        ScriptEngine engine = sem.getEngineByExtension("js");
        engine.setBindings(bindings, ScriptContext.ENGINE_SCOPE);
        try{
            //直接解析
            Object res = engine.eval(" res =  Math.max(aaa_av , bbb_av) + aaa_av");
            System.out.println(res);
           
           
            //创建脚本
            String script = "function getMax() "
                + "{ return Math.max(aaa_av , bbb_av)}";
            //执行脚本
            engine.eval(script);
            Invocable inv = (Invocable) engine;
            //执行方法并传递参数
            Object obj = inv.invokeFunction("getMax", null);
            //打印结果
            System.out.println(obj);

        }catch(Exception ex){
            ex.printStackTrace();
        }
    }

posted @ 2010-06-03 15:04 oathleo 阅读(3383) | 评论 (3)编辑 收藏

如果能把大量的swingUI 与画图 结合在一起,可以任意保存成xml或者二进制的文件, 那大量的swing程序,会简化成大量的工程人员画图而成的文件。
当然复杂的UI还是需要编程,而编程完不再需要打包进产品或者项目,而是让工程人员做成文件的方式,保存下来。
这样的思路是否能运用到实际的swing项目,还未可知,但某些特定的项目,也许可以使用。

废话不说了,看看效果: 画图工具里,从文件里读取了两个table。

posted @ 2010-05-31 11:18 oathleo 阅读(2772) | 评论 (4)编辑 收藏

    微软IE团队总经理迪恩·哈克莫维奇(Dean Hachamovich)今天发表声明称,IE 9与以往的IE版本有很大不同。他表示,微软将每8周对预览版IE 9进行一次升级,第一次升级将在5月中期。但哈克莫维奇没有披露正式版IE 9的发布时间。

下 载:Internet Explorer 9 预览版

微软称,预览版IE 9还不是一款完整的浏览器,目前还不包括地址栏等用户导航工具以及安全功能。微软发布了一个它称之为“Test Drive”的网站,方便网站设计人员、应用开发者了解预览版IE 9的功能。

预览版IE 9只支持Windows 7、Windows Vista SP2和Windows Server R2。IE 9可以利用图形处理器的处理能力加速文本和图形的渲染。

用户可以从Test Drive网站下载大小为31MB的预览版IE 9。


=============================================================

里面图形的Demo 包括Graphics 里面的几个例子,都是用SVG实现,包括了Map Chart等。有了IE支持,看样子SVG又要发第二春了。

Canvas暂时还没有看到使用例子。

posted @ 2010-03-17 09:02 oathleo 阅读(1636) | 评论 (0)编辑 收藏

仅列出标题
共17页: First 上一页 7 8 9 10 11 12 13 14 15 下一页 Last