2010年4月21日星期三

google-api-translate-java

google-api-translate-java是一項谷歌代碼項目(Google Code project), 它提供一種簡單的, 非官方的Java客戶端API, 以使用谷歌翻譯項目(Google Translate).

使用google-api-translate-java, 首先從網頁下載jar檔案到你的電腦上, 然後添加External JARs, 從Eclipse, 在你的project上右擊選擇Properties>Java Build Path, 選擇libraries標籤, 再選擇Add External JARs以添加剛才下載的jar檔案.

相關文章: 在Android應用程序內使用Google Translate API, google-api-translate-java

2010年4月17日星期六

Nine-Patch Images(可伸展圖像)及Draw 9-patch工具



Nine-Patch Images (可伸展圖像)

Android支援一種可伸展圖像,稱為NinePatch圖形. 這是一個PNG圖像,其中可以定義可拉伸區段, Android顯示時, 可調整這個可拉伸區段以適應不同對象的大小,如文本字符串. 通常這種資源會指定給視圖背景. 按鈕的背景是一個例子; 按鈕必須延伸,以適應不同長度的字符串.


Draw 9-patch

Draw 9-patch 是一個所見即所得(WYSIWYG)的編輯器, 讓你輕鬆地創建Nine-Patch圖形.

2010年4月13日星期二

在Sun VirtualBox上安裝LiveAndroid

在文章"LiveAndroid, 讓Android在x86平台上面跑"中介紹了LiveAndroid, 根據我自己的經驗, LiveAndroid不是可以順利在每個x86平台上安裝, 而Sun VirtualBox是一個很好的平台, 它是一個非常流行的開源虛擬化軟件. 你可以在VirtualBox上安裝LiveAndroid.

- 在http://www.sun.com/software/products/virtualbox/index.jsp下載並安裝VirtualBox.
- 啟動VirtualBox
- 點擊New, 然後Next, 創建新的虛擬機.
- 輸入新虛擬機的名稱(LiveAndroid), 選擇操作系統類型: 操作系統(Linux)和版本(Linux 2.6).

- 接受預設的基本內存大小(Base Memory Size).

- 點選Boot Hard Disk和Create new hard disk, 點擊Next, 再點擊Next.


- 點選Dynamically expanding storage, 點擊Next.

- 接受預設的虛擬磁盤位置和大小, 點擊Next.

- 點擊Finish兩次.



基本上已安裝了新的虛擬機, 但還須設定ISO文檔.

- 參考文章"LiveAndroid, 讓Android在x86平台上面跑"下載並連接ISO檔案.
- 在VirtualBox之上, 點選File->Virtual Media Manager...

- 選擇CD/DVD images, 點擊Add.

- 瀏覽和選擇LiveAndroid的ISO檔案, 點擊OK.


現在,可以點擊Start啟動新安裝的LiveAndroid虛擬機.

- 在歡迎頁面點擊Next.

- 再點擊Next.

- 點擊Finish.


現在, LiveAndroid正式在虛擬機之上運行.

2010年4月12日星期一

谷歌2010全球编程挑战赛正式启动

Google Developer Blog - China; 谷歌中国 开发者网站 博客: 谷歌2010全球编程挑战赛正式启动 - 大家来参加!

去爱尔兰首都都柏林,和来自全世界的编程高手面对面一决高低?没错,谷歌全球编程挑战赛很快就能帮您实现梦想!2010年4月8日,新赛季的谷歌全球编程挑战赛正式启动,开始报名。

谷歌编程挑战赛要求参赛者在有限的时间内通过编程来解决复杂的算法问题。竞赛允许参赛者选择自己所熟悉的编码语言和开发环境。2010赛季的报名日期为2010年4月8日至2010年5月7日。

2010年5月7日,谷歌编程挑战赛将正式拉开序幕,来自世界各地的参赛者将首先在网上进行比赛,从中选出25名最佳参赛者到都柏林进行现场决赛。决赛时间初定于2010年7月30日,届时,新一届的全球冠军将会诞生。

2010年4月8日星期四

Java格式字符串(Java Format String)

除了在字符串資源(String Resources)文章中提到簡單格式化的字符串外, Android也可使用Java格式的字符串(Java Format String).



在/res/values/文件夾下面, 創建XML文件定義字符串資源:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="jave_format_string">Hello %1$s, it's %2$s.</string>
</resources>


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:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/hello"
/>
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:id="@+id/mystring"
/>
</LinearLayout>


Java源代碼
package com.AndroidString;

import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;

public class AndroidString extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

TextView myString = (TextView)findViewById(R.id.mystring);
myString.setText(String.format(getString(R.string.jave_format_string), "Android", "Java Format String"));

}
}




字符串資源(String Resources)

字符串資源(String Resources)是其中一種最簡單的資源; 它可以是一個定義為資源的簡單字符串, 也可以是一個格式化的字符串. 來看看這裡的例子:



要使用XML文件定義字符串資源, 該XML文件需要放置在/res/values/文件夾下面, 可以使用任意的文件名.
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="simple_string">simple string</string>
<string name="formatted_string">It's <b><i>BOLD string</i></b>!</string>
</resources>


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:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/hello"
/>
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/simple_string"
/>
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/formatted_string"
/>
</LinearLayout>

2010年4月7日星期三

有關數據與 AdapterView的綁定

AdapterView是ViewGroup的子類, 它的子視圖取決於一個綁定到某些數據類型的適配器(Adapter). 當需要在佈局(layout)中顯示一些存儲的數據(相對於字符串或drawables資源)時, AdapterView是非常有用的.

Gallery, ListView, 和 Spinner 就是AdapterView子類的例子, 可以用作把特定類型的數據和特定的顯示方式綁定起來.

AdapterView對象有兩個主要責任:
* 在佈局中填上數據
* 處理用戶的選擇

有關AdapterView, 詳細可以參考"Binding to Data with AdapterView | Android Developers".

本Blog相關文章:
- 適配器(Adapter), 列表適配器(ListAdapter)和數組適配器(ArrayAdapter)
- 下拉列表 (Spinner)
- 畫廊 (Gallery)