http://bbs.weiphone.com/read-htm-tid-307733.html
嗯,很多确实很一开始不习惯的,而且很明显是不方便的,缺点,苹果显然没有微软的学习精神。 --shappy
* 将应用软体的视窗关上,就以为已关闭(离开)该应用软体。正解:应该从选单中选择「结束」指令。
* 下载一个应用软体后,就在其装载至桌面的磁碟影像档视窗上开启并执行使用之。正解:应该先将该应用软体磁碟影像档装载至桌面上,然后将其中的应用程式拖至应用程式档案夹中。
* 新增一大堆未命名档案夹。正解:应该一一命名之。
* 将某网站的网址输入至 Safari 的 Google 搜寻栏位内,以前往该网站。正解:应该将网址输入至网址栏位中,而不是搜寻栏位中。
* 将「桌布」与「萤幕保护程式」混淆。正解:两者是不同的东西。
* 在视窗标题栏上连按两次以为会将视窗最大化,反而将之缩小至 Dock 。
* 并不了解视窗内容中「直栏」显示方式的用处,而只一味地使用「图像」显示方式。
* 从不使用任何的键盘快捷键。
* 认为改用 Mac 以后就从此没有任何电脑方面的问题了。
* 选取桌面上的图像后按下 Enter 就以为去开启它。正解:其实是进入重新命名状态。
* 尝试在一个视窗的上方寻找选单列所在,而非萤幕画面上方。
* 尝试拉动视窗边缘以改变该视窗大小。正解:应该去拉动与拖移一个视窗右下角的「大小控制格」。
* 使用快捷键组合时,习惯按下 CTRL 键,而非 CMD 键。
* 以为很容易地就能将卡在光碟机内的光碟片取出。
* 当要使用一个应用软体时,就去开启该软体的安装程式并进行安装,只因误认执行该安装程式就等于执行该应用软体。
* 找不到「网际网路」在哪儿,只因为便寻不著印象中微软 IE 的「e 」字样图像。
* 一再尝试按下有著苹果标记的 CMD 键以为可以拉下「苹果」选单,只因为微软视窗系统中可以凭借著按下「视窗」键以拉出「开始」选单。
* 误认为按下视窗左上角的「绿色加号」亦即视窗缩放钮,就可以将视窗以全萤幕大小方式开启。因为 Mac OS X 的概念是将视窗拉至「能够显示所有视窗内容的宽度与高度」为最大化,而非如微软视窗系统中将视窗开至全萤幕画面大小为最大化。
* 寻找一个应用软体的移除程式,以解除安装该应用软体。正解:只要将该应用软体拖至垃圾桶内即可解除安装。
* 将开启的视窗缩到最小亦即缩至 dock ,而不会使用「隐藏」功能。
* 从 dock 开启应用程式时,都连按两下。正解:只需点选一次即可。
* 无意中点选并拖移一个 dock 上的应用软体图像,导致其从 dock 上移除。
* 老将档案储存于桌面或是硬碟中的固定某处,而非使用者的 Home 档案夹内。
* 由于无法辨认诸如「滚动海滩球」、「跑马进度吧」等「正在进行中」的情况显示,所以一而再再而三地打开某个应用软体或文件。
* 不明了 dock 的用途是用来开启或转跳至某个应用软体。
* 由于习惯于微软视窗系统中一次只能看到一个视窗的「全萤幕」模式,所以在多个同时开启的视窗情况下工作时会有所混淆与感到困惑。
* 对苹果键盘上的两个 Delete 键(一个是倒退删除键,一个是前进删除键)感到困惑。因为一般 PC 上的倒退删除键通常都是标以「Back Space」而非「Delete」。
* 编辑文件时,因惯用微软视窗系统的关系,误以为键盘上的 HOME 与 END 键是分别跳至游标目前所在行的头与尾。正解:事实上是跳至该文件的开头与结束处?;要跳至游标目前所在行的头与尾时,请按下 CMD 键与 ←→ 。
* 因惯用微软视窗系统的关系,将一个档案夹拷贝至硬碟某处,若有相同名称的档案夹存在时,误以为两个同名档案夹中的内容会合并。正解:Mac OS X 的做法是以后来的档案夹取代先前的那个,亦即先前档案夹与其所包含的内容将全部被删除。
* 以「较为繁复」的方法使用 Mac OS X 。例如,进入「系统偏好设定」中的「网路」中去启动 AirPort 无线网路,而不会从选单列上的 AirPort 选单下直接选取以启动之。
beerwine.xml
<?xml version="1.0" encoding="utf-8"?>
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:stretchColumns="0"
android:background="@drawable/bg" android:layout_gravity="center_vertical|center_horizontal"
android:layout_height="wrap_content" android:layout_width="wrap_content">
<TableRow>
<TextView android:textColor="#ffffff" android:text="beer:"
android:textSize="16px" android:layout_marginLeft="6dip"
android:layout_gravity="center_vertical" />
<CheckBox android:id="@+id/checkboxBeer"
android:layout_gravity="right|top" />
</TableRow>
<TableRow>
<TextView android:textColor="#ffffff" android:text="wine:"
android:textSize="16px" android:layout_marginLeft="6dip"
android:layout_gravity="center_vertical" />
<CheckBox android:id="@+id/checkboxWine"
android:layout_gravity="right|top" />
</TableRow>
<TableRow android:layout_marginTop="230px">
<Button android:id="@+id/buttonOK" android:text="ok"
android:layout_height="wrap_content" android:layout_width="wrap_content" />
</TableRow>
</TableLayout>
public class Second extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Dialog dialog = new Dialog(this);
dialog.setContentView(R.layout.beerwine);
dialog.setTitle("beer or wine");
dialog.show();
}
}
上面的代码实现了那张图片的功能,其中图片中的酒杯是作为背景出现的并不存在一个vimageView
主要 dialog.setContentView(R.layout.beerwine); 的使用。
如果继续使用点击事件
public class Second extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Dialog dialog = new Dialog(this);
dialog.setContentView(R.layout.beerwine);
dialog.setTitle("beer or wine");
dialog.show();
Button buttonOK = (Button) dialog.findViewById(R.id.buttonOK);
buttonOK.setOnClickListener(new OKListener(dialog));
}
protected class OKListener implements OnClickListener {
private Dialog dialog;
public OKListener(Dialog dialog) {
this.dialog = dialog;
}
public void onClick(View v) {
dialog.dismiss();
}
}
}
这里面一定要注意Button buttonOK = (Button) dialog.findViewById(R.id.buttonOK);
是通过dialog引用出button其实你也可以用inflater的。
3.如果想继续扩展 添加选择框的选择事件
public class Third extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
BeerWineDialog dialog = new BeerWineDialog(this, true, true);
dialog.show();
}
}
public class BeerWineDialog extends Dialog {
private boolean beer;
private boolean wine;
public BeerWineDialog(Context context, boolean beer, boolean wine) {
super(context);
this.beer = beer;
this.wine = wine;
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.beerwine);
setTitle("beer or wine");
CheckBox cbBeer = (CheckBox) findViewById(R.id.checkboxBeer);
cbBeer.setChecked(beer);
CheckBox cbWine = (CheckBox) findViewById(R.id.checkboxWine);
cbWine.setChecked(wine);
Button buttonOK = (Button) findViewById(R.id.buttonOK);
buttonOK.setOnClickListener(new OKListener());
}
private class OKListener implements android.view.View.OnClickListener {
@Override
public void onClick(View v) {
BeerWineDialog.this.dismiss();
}
}
}
这也呢最终继承了一个dialog控件
1.
mybutton_background.xml
<?xml version="1.0" encoding="utf-8"?>
<selector android="http://schemas.android.com/apk/res/android">
<item android:state_focused="true" android:state_pressed="false"
android:drawable="@drawable/button_background_focus" />
<item android:state_focused="true" android:state_pressed="true"
android:drawable="@drawable/button_background_pressed" />
<item android:state_focused="false" android:state_pressed="true"
android:drawable="@drawable/button_background_pressed" />
<item drawable="@drawable/button_background_normal">
</selector>
android:background="@drawable/mybutton_background"
2.
public class OnPressButton extends Button{
public OnPressButton(Context context) {
super(context);
}
public OnPressButton(Context context, AttributeSet attrs){
super(context, attrs);
}
@Override
protected void onDraw(Canvas canvas) {
//sets the button image based on whether the button in its pressed state
setBackgroundDrawable(getResources().getDrawable(isPressed()?R.drawable.btn_on : R.drawable.btn_off));
super.onDraw(canvas);
}
}
<view
android:background="@android:color/transparent"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="My Button" />
这句话要注意android:background="@android:color/transparent"
也可以查看http://code.google.com/android/toolbox/custom-components.html