編輯:高級開發
vIEw sourceprint?001package irdc.ex05_20;
002
003import android.app.Activity;
004import android.os.Bundle;
005import android.util.DisplayMetrics;
006import android.vIEw.KeyEvent;
007import android.view.VIEw;
008import android.widget.AbsoluteLayout;
009import android.widget.Button;
010import android.widget.Toast;
011
012public class EX05_20 extends Activity
013{
014 private Button mButton01;
015 private int intWidth, intHeight, intButtonX, intButtonY;
016
017 /* 存儲屏幕的分辨率 */
018 private int intScreenX, intScreenY;
019
020 /* 按鈕位移的平移量 */
021 private int intShift = 2;
022
023 /** Called when the activity is first created. */
024 @Override
025 public void onCreate(Bundle savedInstanceState)
026 {
027 super.onCreate(savedInstanceState);
028 setContentVIEw(R.layout.main);
029
030 //一般的結構描述信息顯示,如它的大小,密度和字體縮放。
031// 要訪問DisplayMetrics成員,初始化一個這樣的對象:
032 DisplayMetrics dm = new DisplayMetrics();
033 getWindowManager().getDefaultDisplay().getMetrics(dm);
034
035 /* 取得屏幕解析像素 */
036 intScreenX = dm.widthPixels;
037 intScreenY = dm.heightPixels;
038
039 /* 定義按鈕的寬x高 */
040 intWidth = 80;
041 intHeight = 40;
042
043 mButton01 =(Button) findVIEwById(R.id.myButton1);
044
045 /* 初始化按鈕位置居中 */
046 RestoreButton();
047
048 /* 當點擊按鈕,還原初始位置 */
049 mButton01.setOnClickListener(new Button.OnClickListener()
接上頁
050 {
051 @Override
052 public void onClick(VIEw v)
053 {
054 // TODO Auto-generated method stub
055 RestoreButton();
056 }
057 });
058 }
059
060 @Override
061 public boolean onKeyDown(int keyCode, KeyEvent event)
062 {
063 // TODO Auto-generated method stub
064 switch(keyCode)
065 {
066 /* 中間按鍵 */
067 case KeyEvent.KEYCODE_DPAD_CENTER:
068 /* keyCode=23 */
069 RestoreButton();
070 break;
071 /* 上按鍵 */
072 case KeyEvent.KEYCODE_DPAD_UP:
073 /* keyCode=19 */
074 MoveButtonUp();
075 break;
076 /* 下按鍵 */
077 case KeyEvent.KEYCODE_DPAD_DOWN:
078 /* keyCode=20 */
079 MoveButtonDown();
080 break;
081 /* 左按鍵 */
082 case KeyEvent.KEYCODE_DPAD_LEFT:
083 /* keyCode=21 */
084 MoveButtonLeft();
085 break;
086 /* 右按鍵 */
087 case KeyEvent.KEYCODE_DPAD_RIGHT:
088 /* keyCode=22 */
089 MoveButtonRight();
090 break;
091 }
092 return super.onKeyDown(keyCode, event);
093 }
094
095 /* 還原按鈕位置的事件處理 */
096 public void RestoreButton()
097 {
098 intButtonX = ((intScreenX-intWidth)/2);
099 intButtonY = ((intScreenY-intHeight)/2);
100 mMakeTextToast
101 (
102 "("+
103 Integer.toString(intButtonX)+
104 ","+
105 Integer.toString(intButtonY)+")",true
106 );
107
108 /* 以setLayoutParams方法,重新安排Layout上的位置 */
109 mButton01.setLayoutParams
110 (
接上頁
111 new AbsoluteLayout.LayoutParams
112 (intWidth,intHeight,intButtonX,intButtonY)
113 );
114 }
115
116 /* 點擊DPAD上按鍵時事件處理 */
117 public void MoveButtonUp()
118 {
119 intButtonY = intButtonY-intShift;
120 /* 預防按鈕到達下邊界時的處理 */
121 if(intButtonY<0)
122 {
123 intButtonY = 0;
124 }
125 mButton01.setLayoutParams
126 (
127 new AbsoluteLayout.LayoutParams
128 (intWidth,intHeight,intButtonX,intButtonY)
129 );
130 }
131
132 /* 點擊DPAD下按鍵時事件處理 */
133 public void MoveButtonDown()
134 {
135 intButtonY = intButtonY+intShift;
136 /* 預防按鈕到達下邊界時的處理 */
137 if(intButtonY>(intScreenY-intHeight))
138 {
139 intButtonY = intScreenX-intHeight;
140 }
141 mButton01.setLayoutParams
142 (
143 new AbsoluteLayout.LayoutParams
144 (intWidth,intHeight,intButtonX,intButtonY)
145 );
146 }
147
148 /* 點擊DPAD左按鍵時事件處理 */
149 public void MoveButtonLeft()
150 {
151 intButtonX = intButtonX-intShift;
152 /* 預防按鈕到達左邊界時的處理 */
153 if(intButtonX<0)
154 {
155 intButtonX = 0;
156 }
157 mButton01.setLayoutParams
158 (
159 new AbsoluteLayout.LayoutParams
160 (intWidth,intHeight,intButtonX,intButtonY)
161 );
162 }
163
164 /* 點擊DPAD右按鍵時事件處理 */
165 public void MoveButtonRight()
166 {
167 intButtonX = intButtonX+intShift;
168 /* 預防按鈕到達右邊界時的處理 */
接上頁
169 if(intButtonX>(intScreenX-intWidth))
170 {
171 intButtonX = intScreenX-intWidth;
172 }
173 mButton01.setLayoutParams
174 (
175 new AbsoluteLayout.LayoutParams
176 (intWidth,intHeight,intButtonX,intButtonY)
177 );
178 }
179
180 //顯示信息
181 public void mMakeTextToast(String str, boolean isLong)
182 {
183 if(isLong==true)
184 {
185 Toast.makeText(EX05_20.this, str, Toast.LENGTH_LONG).show();
186 }
187 else
188 {
189 Toast.makeText(EX05_20.this, str, Toast.LENGTH_SHORT).show();
190 }
191 }
192}
android開源語言采用了軟件堆層(software stack,又名軟件疊層)的架構,主要分為三部分:底層以Linux核心為基礎,由C語言開發,只提供基本功能,下文
但是當用戶選購android手機系統時也難免會注意到手機的操作系統,就不知“安致”這個名字能否被廣大手機用戶認可了,業界猜測該商標為android的中文商標。盡管and
android系統獲得了根節點的參數,它就可以直接通過節點來無效化,測距和繪制樹。當你的Activity被激活並且獲得焦點時,開發既有用又有吸引力的移動服務,並推廣這些
每一個Android設備特別是手機都提供一個撥打電話功能,但仍然需要編寫一個應用程序,給用戶一個選擇使用硬編碼的電話號碼撥打電話。本章列出了一個簡單的步驟來創建一個應用程