1 用一個VIEW做為訊息提示
btn3.setOnClickListener(new Button.OnClickListener() {
public void onClick(View v) {
View view = inflateView(R.layout.view);
TextView txtMsg = (TextView) view.findViewById(R.id.txtMsg);
txtMsg.setText("提示內容");
Toast toast = new Toast(Main.this);
toast.setView(view);
toast.setDuration(Toast.LENGTH_LONG);
toast.show();
}
});
2 狀態列通知
public void onClick(View v) {
// 執行個體化通知管理器
NotificationManager nm = (NotificationManager) getSystemService
(NOTIFICATION_SERVICE);
// 指定單擊通知後所開啟的詳細的通知頁面(單擊通知後開啟 NotificationView
)
PendingIntent contentIntent = PendingIntent.getActivity(
Main.this, 0, new Intent(Main.this,
NotificationView.class), 0);
// 執行個體化一個通知,並指定其表徵圖和標題(在提示欄上顯示)
Notification n = new Notification(R.drawable.icon01, "我是滾動的通知資訊
我是滾動的通知資訊我是滾動的通知資訊", System.currentTimeMillis());
// 設定通知的發送人和通知的詳細內容(開啟提示欄後在通知清單中顯示)
n.setLatestEventInfo(Main.this, "通知發送人", "我是詳細的通知資訊我是詳
細的通知資訊我是詳細的通知資訊", contentIntent);
// 100 毫秒延遲後,震動 250 毫秒,暫停 100 毫秒後,再震動 500 毫秒
n.vibrate = new long[] { 100, 250, 100, 500 };
// 發出通知(其中第一個參數為通知標識符)
nm.notify(0, n);
}
});
3 圖片按鈕:
ImageButton imgButton = (ImageButton) this.findViewById(R.id.imageButton);
// 設定圖片按鈕的背景
imgButton.setBackgroundResource(R.drawable.icon01);
4 圖片顯示:
ImageView imgView = (ImageView) this.findViewById(R.id.imageView);
// 指定需要顯示的圖片
imgView.setBackgroundResource(R.drawable.icon01);
5 checkbox:
CheckBox chk = (CheckBox) this.findViewById(R.id.chk1);
// setOnCheckedChangeListener() - 響應複選框的選中狀態改變事件
chk.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
TextView txt = (TextView) _CheckBox.this.findViewById(R.id.textView);
txt.setText("CheckBox01 的選中狀態:" + String.valueOf(isChecked));
}
});
6 ToggleButton:
<!--
ToggleButton - 雙狀態按鈕控制項
textOn - 當按鈕狀態為 true 時所顯示的文本
textOff - 當按鈕狀態為 false 時所顯示的文本
-->
<ToggleButton android:id="@+id/toggleButton"
android:layout_width="wrap_content" android:layout_height="wrap_content"
android:textOn="關閉" android:textOff="開啟" />
final ToggleButton btn = (ToggleButton) this.findViewById(R.id.toggleButton);
// setOnClickListener() - 響應按鈕的按一下滑鼠事件
btn.setOnClickListener(new Button.OnClickListener(){
@Override
public void onClick(View v) {
TextView txt = (TextView) _ToggleButton.this.findViewById(R.id.textView);
// ToggleButton.isChecked() - 雙狀態按鈕的按鈕狀態
txt.setText("按鈕狀態:" + String.valueOf(btn.isChecked()));
}
});
7 進度條:
<!--
進度條控制項(條狀)的示範
style - 進度條的樣式,本例使用內建樣式
max - 進度的最大值
progress - 第一進度位置
secondaryProgress - 第二進度位置
-->
<ProgressBar android:id="@+id/progress_horizontal"
style="?android:attr/progressBarStyleHorizontal" android:layout_width="200px"
android:layout_height="wrap_content" android:max="100"
android:progress="50" android:secondaryProgress="75" />
// 設定特性以允許在應用程式的標題列上顯示進度條(條狀)
requestWindowFeature(Window.FEATURE_PROGRESS);
// 設定特性以允許在應用程式的標題列上顯示進度條(圓圈狀)
requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS);
this.setContentView(R.layout.progressbar);
setTitle("ProgressBar");
// 在標題列上顯示進度條(條狀)
setProgressBarVisibility(true);
// 在標題列上顯示進度條(圓圈狀)
setProgressBarIndeterminateVisibility(true);
// 指定進度條的進度
setProgress(50 * 100);
setSecondaryProgress(75 * 100);
9 SeekBar:
<!--
SeekBar - 可拖動的進度條控制項
max - 進度的最大值
progress - 第一進度位置
secondaryProgress - 第二進度位置
-->
<SeekBar android:id="@+id/seekBar" android:layout_width="fill_parent"
android:layout_height="wrap_content" android:max="100"
android:progress="50" android:secondaryProgress="75" />
mSeekBar = (SeekBar) findViewById(R.id.seekBar);
// setOnSeekBarChangeListener() - 響應拖動進度條事件
mSeekBar.setOnSeekBarChangeListener(this);
// 拖動進度條後,進度發生改變時的回調事件
public void onProgressChanged(SeekBar seekBar, int progress,
boolean fromTouch) {
mProgressText.setText(progress + "%");
}
// 拖動進度條前開始跟蹤觸摸
public void onStartTrackingTouch(SeekBar seekBar) {
mTrackingText.setText("開始跟蹤觸摸");
}
// 拖動進度條後停止跟蹤觸摸
public void onStopTrackingTouch(SeekBar seekBar) {
mTrackingText.setText("停止跟蹤觸摸");
}
10 放大縮小控制項:
ZoomControls zoomControls = (ZoomControls) this.findViewById(R.id.zoomControls);
// setOnZoomInClickListener() - 響應單擊放大按鈕的事件
zoomControls.setOnZoomInClickListener(new OnClickListener() {
public void onClick(View v) {
Toast.makeText(_ZoomControls.this, "單擊了放大按鈕",
Toast.LENGTH_SHORT).show();
}
});
// setOnZoomOutClickListener() - 響應單擊縮小按鈕的事件
zoomControls.setOnZoomOutClickListener(new OnClickListener() {
public void onClick(View v) {
Toast.makeText(_ZoomControls.this, "單擊了縮小按鈕",
Toast.LENGTH_SHORT).show();
}
});
11 videoview:
VideoView videoView = (VideoView) findViewById(R.id.videoView);
// 指定需要播放的視頻的地址
videoView.setVideoURI(Uri.parse("android.resource://com.webabcd.view/" + R.raw.demo));
// videoView.setVideoPath();
// 設定播放器的控制條
videoView.setMediaController(new MediaController(this));
// 開始播放視頻
videoView.start();
12 tab控制項:
<!-- Tab 1 的內容 -->
<TextView android:id="@+id/view1" android:layout_width="fill_parent"
android:layout_height="fill_parent" android:text="tab1 content" />
<!-- Tab 2 的內容 -->
<TextView android:id="@+id/view2" android:layout_width="fill_parent"
android:layout_height="fill_parent" android:text="tab2 content" />
// 實現 Tab 功能的話要繼承 TabActivity
public class _Tab extends TabActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
TabHost tabHost = getTabHost();
LayoutInflater.from(this).inflate(R.layout.tab, tabHost.getTabContentView(), true);
// Tab 1 的內容
tabHost.addTab(tabHost.newTabSpec("tab1")
.setIndicator("tab1")
.setContent(R.id.view1));
// Tab 2 的內容(設定了 Tab 圖片)
tabHost.addTab(tabHost.newTabSpec("tab2")
.setIndicator("tab2", getResources().getDrawable(R.drawable.icon01))
.setContent(R.id.view2));
// Tab 3 的內容(設定 Tab 的內容為指定的 Activity)
tabHost.addTab(tabHost.newTabSpec("tab3")
.setIndicator("tab3")
.setContent(new Intent(this, _TextView.class)));
}
}
13 GALLERY縮圖組件:
<!--
Gallery - 縮圖瀏覽器控制項
spacing - 縮圖列表中各個縮圖之間的間距
-->
<Gallery android:id="@+id/gallery" android:layout_width="fill_parent"
android:layout_height="wrap_content" android:spacing="20px" />
Gallery gallery = (Gallery) findViewById(R.id.gallery);
// 為縮圖瀏覽器指定一個適配器
gallery.setAdapter(new ImageAdapter(this));
// 響應 在縮圖列表上選中某個縮圖後的 事件
gallery.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View v,
int position, long id) {
Toast.makeText(_Gallery.this, String.valueOf(position), Toast.LENGTH_SHORT).show();
}
@Override
public void onNothingSelected(AdapterView<?> arg0) {
}
});
}
// 繼承 BaseAdapter 用以實現自訂的圖片適配器
public class ImageAdapter extends BaseAdapter {
private Context mContext;
public ImageAdapter(Context context) {
mContext = context;
}
public int getCount() {
return mThumbIds.length;
}
public Object getItem(int position) {
return position;
}
public long getItemId(int position) {
return position;
}
public View getView(int position, View convertView, ViewGroup parent) {
ImageView image = new ImageView(mContext);
image.setImageResource(mThumbIds[position]);
image.setAdjustViewBounds(true);
image.setLayoutParams(new Gallery.LayoutParams(
LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
return image;
}
}
// 需要顯示的圖片集合
private Integer[] mThumbIds = { R.drawable.icon01, R.drawable.icon02,
R.drawable.icon03, R.drawable.icon04, R.drawable.icon05 };