編輯:關於Android編程
CheckBox有兩個常用的事件,OnClickListener事件和OnClickChangeListener事件
效果如下:
代碼:
package com.example.z1178.test;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.CheckBox;
import android.widget.CompoundButton;
public class MainActivity extends Activity {
private static final String TAG=debug;
private CheckBox eat_checkBox;
private CheckBox sleep_checkBox;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.linear_layout);
eat_checkBox=(CheckBox)findViewById(R.id.eat_checkBox);
sleep_checkBox=(CheckBox)findViewById(R.id.sleep_checkBox);
OnCheckBoxClickListener listener1=new OnCheckBoxClickListener();
CompoundButton.OnCheckedChangeListener listener2=new OnCheckedChangeListener();
//綁定點擊事件
eat_checkBox.setOnClickListener(listener1);
sleep_checkBox.setOnClickListener(listener1);
//綁定狀態改變事件
eat_checkBox.setOnCheckedChangeListener(listener2);
sleep_checkBox.setOnCheckedChangeListener(listener2);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.menu_main, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
//noinspection SimplifiableIfStatement
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
class OnCheckBoxClickListener implements View.OnClickListener{
@Override
public void onClick(View v) {
CheckBox box=(CheckBox)v;
int id=v.getId();
switch (id){
case R.id.eat_checkBox:Log.d(TAG,eat_checkBox is clicked!: + box.isChecked());break;
case R.id.sleep_checkBox:Log.d(TAG, sleep_checkBox is clicked: + box.isChecked());break;
}
}
}
class OnCheckedChangeListener implements CompoundButton.OnCheckedChangeListener{
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
CheckBox box=(CheckBox)buttonView;
Log.d(TAG,box.getText()+ checkBox changed ,its statue is +isChecked);
}
}
}
若要在界面上增加全選按鈕,則先在xml中增加相應的控件,然後在代碼中獲取該對象,然後綁定OnClickChangeListener事件,關鍵代碼如下:
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
CheckBox box=(CheckBox)buttonView;
int id=box.getId();
if(id!=R.id.checkall_checkBox){
Log.d(TAG,box.getText()+ checkBox changed ,its statue is +isChecked);
}else{
eat_checkBox.setChecked(isChecked);
sleep_checkBox.setChecked(isChecked);
}
}
單選按鈕有RadioButton和RadioGroup,其事件與CheckBox一樣,也有OnClickListener事件和OnClickChangeListener事件,不再贅述。
配置控件:
我們也可以通過在代碼中設置圖片
imageView.setImageResource(R.drawable.layout_image);
imageView為ImageView對象,R.drawable.layout_image為drawable中的圖片
ScaleType可以控制圖片的相關屬性,其屬性如下:
效果如圖:
其中,我們設置了圖片的width和height為100dp,scaleType為fitCenter,同時設置了背景色,圖片會按照width和height等比例縮放,不夠的地方背景色填充。
若其中一個的scaleType為fitStart時,效果如下:
scaleType為center時:
此時圖片大於規定的尺寸,則進行裁剪,小於規定尺寸的則居中顯示,注意此時無背景色了。
scaleType為centerInside時:
centerInside與centerFit的區別是,當圖片過大時,兩者沒有區別,但是當圖片小於規定尺寸時,centerFit會進行放大以適應尺寸,而centerInside不會這樣做,只是放在中央。<喎?/kf/ware/vc/" target="_blank" class="keylink">vcD4NCjxwPnNjYWxlVHlwZc6qY2VudGVyQ3JvcMqxo7o8L3A+DQo8cD48aW1nIGFsdD0="這裡寫圖片描述" src="/uploadfile/Collfiles/20150723/2015072308300839.png" title="\" />
centerCrop為圖片的短邊於尺寸短邊按比例縮放,長邊過長則截取掉,因此其是沒有背景色的。
當然,我們也可以在代碼中實現圖片的縮放。
imageView.setScaleType(ScaleType.CENTER);
其參數為枚舉類型。
TimePicker和DatePicker均有OnTimeChangedListener事件。
package com.example.z1178.test;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.TimePicker;
public class MainActivity extends Activity {
private static final String TAG=debug;
private TimePicker timePicker;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.linear_layout);
timePicker=(TimePicker)findViewById(R.id.timePicker);
timePicker.setIs24HourView(true);
//設置監聽器和綁定事件
timePickerChangedListener listener=new timePickerChangedListener();
timePicker.setOnTimeChangedListener(listener);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.menu_main, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
//noinspection SimplifiableIfStatement
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
class timePickerChangedListener implements TimePicker.OnTimeChangedListener{
@Override
public void onTimeChanged(TimePicker view, int hourOfDay, int minute) {
Log.d(TAG,hourOfDay+:+minute);
}
}
}
默認情況下,時間顯示的是當前系統時間,我們可以在代碼中設置時間,還有,我們可以通過頁面上的按鈕設置監聽器來獲得時間。注意,月份是從0開始的 。
AnalogClock和DigitalClock這裡就不介紹了。
ProgressBar的屬性:
SeekBar的監聽事件
RatingBar的屬性:
使用過百度地圖的同學知道,它有個街景功能,可以看到許多地方的實景。這裡就其街景內容的實現,進行下學習。 在百度地圖SDK的官網上可以看到,百度對開發者提供了很多相關的內容
一.Universal-Image-Loader概述:Android-Universal-Image-Loader是一個開源的圖片加載框架,這個項目的目的是提供一個可重復
19.怎麼使用SourceInsight?19.1用途我們主要使用SourceInsight進行源碼分析和查找,主要是查找我們所需要的文件/類的位置。對於一套源碼,擁有幾
隨著移動互聯網的快速發展,它已經和我們的生活息息相關了,在公交地鐵裡面都能看到很多人的人低頭看著自己的手機屏幕,從此“低頭族”一詞就產生了,作為一名移動行業的開發人員,我