2010年1月30日 星期六

下拉元件

下拉元件分為三個部份,一個是畫面上的元件,一個是程式,還有就是下拉的內容

(為了完整呈現原始碼,所以在程式碼的&使用時要拿掉)

1.畫面main.xml加入



@+id/object:為元件的id=object
layout_width=" fill_parent="">layout_hight="wrap_content"為元件的高度=元件高度
drawSelectorOnTop="true" 指定這個下拉選單是否可以顯示在其他選單的上層,只有在多層選單上才會顯示出效果
prompt 指定下拉選單彈出選單選項提示(彈出選單的標題)

2.設定下拉元件的內容
在value下新增一個檔案,檔名為arrays.xml 這個檔案可用來放置像下拉選單的內容
因為是新的檔案,所以要在檔案中放入

<&?xml version="1.0" encoding="utf-8"?>
<&resources>
<&!-- obj下拉內容 -->
<&string-array name="obj">
<&item>男
<&item>女
<&/string-array>

<&/resources>




如果arrays.xml已存在,則只要加入<&string-array>段就可以了

3.程式 xxx.java加入

(外層)Spinner obj;

(外層)
private void initLayout(){
obj = (Spinner)findViewById(R.id.obj);
ArrayAdapter adp = ArrayAdapter.createFromResource(
this, R.array.sexs, android.R.layout.simple_spinner_item);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
obj.setAdapter(adp);
}

外層就是指
@Override
public void onCreate的上一層

在外層宣告 obj是Spinner

再設定一個自訂函數initLayout 用來初始化元件

obj = (Spinner)findViewById(R.id.obj); 指定程式中的obj為畫面上的Spinner

設定adapter(接口) 參考備註1 用來連結資料到下拉選單中

ArrayAdapter adp= ArrayAdapter.createFromResource(
this, R.array.obj, android.R.layout.simple_spinner_item);

這裏使用的是陣列型的接口.接回名稱訂為adp. 裏面包含三個參數
參數1是這個Activity本身(用this 表示)
參數2是資料來源也就是在步驟2中設定的資料。 R.array.obj 中的obj就是在步驟2中設定的name="obj"
參數3是傳入的陣列。simple_spinner_item為Android陣列所內建的預設下拉選單選項格式

setDropDownViewResource 為設定資源到下拉選單中

obj.setAdapter(adp);設定下拉元件的接口


最後在onCreate中加入執行initLayout();就可以了

public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
initLayout(); <-- 這一行
}

執行一下程式就可以看到效果了


備註1
在android中並不允許直接將字串陣列套用在介面元件中。介面選單的項目,都必預透過Adapter來連結。書上稱Adapter為接口。加了adapter主要是保持程式的使用彈性。
adapter有分為很多種
ArrayAdapter 讀入程式中已宣告的陣列,並轉換成介面元件看的懂的接回元件
SimpleAdapter 從XML文字字串檔讀入陣列
CursorAdapter 從ContentProvider讀入陣列.主要和 DB有關。像讀入通訊錄之類的

2010年1月23日 星期六

資料欄位的參數

EditText 一般比較常看到的參數是
android:layout_width="fill_parent" 就是向右延伸
android:layout_height="fill_parent" 是向下延伸到畫面底部
android:layout_height="wrap_content" 預設是一行,但可以動態增加
android:password="true" 密碼欄位
android:numbric="integer" 分為int,signed和decimal 都是數字為整數,小數
android:signleline="true" 單行

2010年1月1日 星期五

android 的圖示設計

在android 的程式設計中,圖示是很重要的一環,
大部份的行動設備上都是以圖示來代表各項功能。

在android的程式設計中,提供了圖示的規格範本
例如

尺寸 48px X 48px
色版 白色 r 0 | g 0 | b 0 用於圖示或斜光的內容
深灰漸層 1: r 169 | g 169 | b 169
2: r 126 | g 126 | b 126 用於停用圖示的明細
填補漸層 1: 1 r 105 | g 105 | b 105
2: r 10 | g 10 | b 10 用於填補顏色
黑色 Black r 255 | g 255 | b 255 用於陰影

參考 http://developer.android.com/guide/practices/ui_guidelines/icon_design.html#menupalette

2009年10月5日 星期一

買了HERO

等待很久,也爬了不少文,終於在"一時的衝動"下,買了HTC 的白色HERO機。

配合吃到飽,現在到那裏都可以連線。

真的是很優的ANDROID手機。手機用了好幾個星期沒有當機過…

想起MW的機器,不知道已經當機多少回了…

2009年2月11日 星期三

Android卡住了

有一段日子沒有上來更新了
雖然都有在注意Android的動向
可是卻一直等不到G2的發表
也拿不到G1的機器。終究寫好的程式還是要放在實機上測試比較好。

還是很期待新資訊的發生....

2008年12月28日 星期日

Android 淺探

在網路上找到了寫Android的文章
裏面介紹Android的概念和基本架構


該作者分成了兩部份

一是 Android淺深(一)
另為 Android 淺探(二):系統架構

2008年12月27日 星期六

Android模擬器下的SD卡

mksdcard 是用來建立模擬SD記憶卡,其格式為FAT32。
檔案位置為 Android_sdk/toos/

指令為
mksdcard [-l label] size[K|M] file

參數 -l 為該記憶卡的標籤(Label)
size 指定記憶卡的容量大小 可輸入1024M 或1048576K
file 建立影像檔(記憶卡)的路徑/檔名

例如 要新增一1024M的模擬SD記憶卡

/Android_sdk/tools/mksdcard 1024M SDi (快速建立一模擬SD卡)
/Android_sdk/tools/mksdcard -l MySD 1024K SDi (完整模擬SD卡)

新增完後可以在tools的目錄中看到影像檔,檔名為SDi


新增完成後,還要將SD卡掛在Android模擬器上

指令為

emulator -sdcard file

參數 file SD卡的影像檔

例如
emulator -sdcard SDi



最後補充 影像檔的副檔名是ISO 不是 IMG