Button—–按鈕
<Button
android:"@+id/button1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Button"
/>
ImageButton—–圖片按鈕
<ImageButton
android:id="@+id/imageButton"
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:src="@drawableabc_ab_share_pack_holo_light"
/>
button可以設置文本內容的一個按鈕,
ImageButton不可以設置文本內容,background屬性和src屬性添加一個有文本內容的圖片
ImageButton是沒有text屬性的
button是沒有src屬性的!
如果在佈局文件中寫上android:text=”我是一個按鈕”,在android4.4環境中是不會看到任何效果的!
Button和ImageButton的監聽事件:
onClick事件:
兩者都有一個onClick事件
通過自身的.setOnClickListener(OnClickListener)方法添加點擊事件
2.所有的控件都有一個onClick的事件
不僅僅button和ImageButton擁有
3.通過點擊事件的監聽可以實現點擊按鈕之後要發生什麼動作!
監聽事件的幾種寫法:
1.匿名內部類的實現
2.獨立類的實現
3.實現接口的方式來實現
匿名內部類監聽按鈕點擊事件的實現步驟:
1.初始化當前所需要的空間
如何初始化一個控件?首先聲明一個:
private Button loginButton;
然後賦值:
loginButton = (Button)finViewById(R.id.button1);
默認的findViewById返回一個view對象,所以需要強制轉換
findViewById—-返回的是一個View對象。
findViewById—-是如何查找到相應的view的id;
第二步:
設置button的監聽器,通過監聽器實現我們點擊button要操作的事情
匿名內部類監聽事件:通過第一種方式實現
loginButton.setOnClickListener(new OnClickListener(){
public void onClick(View arg0){
//在當前onClick方法中監聽點擊button的動作!
System.out.println("我的button被點擊了!");
}
});
2.外部類的寫法*(比較少見0)
bt1.setOnClickListener(new MyOnClickListener(){
public void onClick(View v){
//調用父類的onClick事件
super.onClick(v);
Toast.makeText(MainActivity.this,"bt1要執行的邏輯",1).show();
}
});
//OnClickListener 是一個接口,所以不能用繼承實現
class MyOnClickListener implements OnClickListener{
public void onClick(View v){
Log.i("tag","父類的OnClick事件");
//讓所有使用當前外部類的點擊事件的按鈕都要做出一個動作,eg,改變button的透明度
v.setAlpha(0.5f);//0不顯示,1完全顯示setAlpha 改變透明度
}
}
3.通過接口方式實現監聽事件
public class MainActivity extends Activity implements OnClickListener{
。。。
private ImageButton imgBt;
imgBt.setOnClickListener(this);
。。。
}
public void onClick)(View v){
Log.i("tag","第三種方式實現");
}
小項目:使用TextView 來實現跑馬燈效果!
只有簡單要求一個跑馬燈效果的時候,可以僅僅通過三條語句來實現:
android:ellipsize=”marquee”
android:focusable=”true”
android:focusableInTouchMode=”true”
通常使用單位做符號時,單位有三種 px,dp或者是dip,sp
1.通常在軟件開發中不建議使用px,因爲px不能根據分辨率進行一個等比的縮放!只能是固定值,跟屏幕分辨率分離開了!
2.dp或者是dip一般在控件中,做長度大小的限制時,推薦使用的!
3.sp和dp 一樣都可以根據分辨率來進行一個分辨率的顯示,但是sp更多的是用來推薦使用文字size的時候來進行使用!
目前安卓最近的sdk推薦用戶使用的是dp而不是dip。
開發的時候儘量在控件,layout固定的size的時候,使用dp
AutoCompleteTextView
1.功能:
動態匹配輸入的內容,如百度搜索引擎當輸入文本時,可以根據內容顯示匹配的熱門信息。
2.獨特屬性:
android:completionThreshold=”2”
—-設置輸入多少字符時自動匹配