安卓第三天笔记--通知-进度条-时期
1.通知Notification
通知就是在是上方的状态栏弹出通知消息
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity" >
<Button
android:onClick="send"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="发送通知" />
</RelativeLayout>
<?xml version="1.0" encoding="utf-8"?>
<LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<TextView
android:id="@+id/tv"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="这是通知的跳转页面"/>
<ImageView
android:id="@+id/iv"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:src="@drawable/swift"/>
</LinearLayout>
/**
* 收到通知时,点击通知打开的Activity
* @author 刘楠
*
* 2016-2-19下午11:03:44
*/
public class OtherActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.other);
}
}
ManiActivity
/**
* 发送通知
* @author 刘楠
*
* 2016-2-19下午7:20:05
*/
public class MainActivity extends Activity {
private NotificationManager manager;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//获取通知管理器
manager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
}
/**
* 发送通知
* @param v
*/
@SuppressLint("NewApi")
public void send(View v){
//创建一个启动的Intent意图
Intent intent = new Intent();
intent.setClass(this, OtherActivity.class);
//打开A description of an Intent and target action to perform with it
PendingIntent pendingIntent =PendingIntent.getActivity(this, 0, intent, 0);
//建立通知
Notification notification = new Notification.Builder(this)
//设置打开通知
.setAutoCancel(true)
//状态栏显示的信息
.setTicker("状态栏显示的信息")
//设置通知的图标
.setSmallIcon(R.drawable.notify)
//设置内容标题
.setContentTitle("一条新的通知")
//设置通知的内容
.setContentText("恭喜您,您加薪了,工资增加20%")
.setContentIntent(pendingIntent)
//设置通知的声音
.build();
//发送一个通知
manager.notify(0, notification);
}
}
2.TitleProgressBar
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="match_parent">
<Button
android:id="@+id/btn1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:text="显示"
/>
<Button
android:id="@+id/btn2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:text="隐藏"
/>
</LinearLayout>
/**
* 标题栏上方显示进度条
* @author 刘楠
*
* 2016-2-19下午11:12:21
*/
public class MainActivity extends Activity {
private Button btn1;
private Button btn2;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_PROGRESS);
//requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS);
setContentView(R.layout.activity_main);
btn1 = (Button) findViewById(R.id.btn1);
btn2 = (Button) findViewById(R.id.btn2);
btn1.setOnClickListener(new OnClickListener()
{
@Override
public void onClick(View source)
{
//显示不带进度的进度条
setProgressBarIndeterminateVisibility(true);
//显示带进度的进度条
setProgressBarVisibility(true);
//设置进度条的进度
setProgress(4500);
}
});
btn2.setOnClickListener(new OnClickListener()
{
@Override
public void onClick(View source)
{
//隐藏不带进度的进度条
setProgressBarIndeterminateVisibility(false);
//隐藏带进度的进度条
setProgressBarVisibility(false);
}
});
}
}
3.SeekBar--拖动改变图片的透明度
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".MainActivity" >
<ImageView
android:id="@+id/iv"
android:layout_width="match_parent"
android:layout_height="240dp"
android:src="@drawable/lijiang"
android:alpha="1"/>
<SeekBar
android:id="@+id/seekbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:max="255"
android:progress="255"
android:thumb="@drawable/ic_launcher"
/>
<TextView
android:gravity="center_horizontal"
android:id="@+id/tv"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
</LinearLayout>
/**
* SeekBar
* 拖动SeekBar来改变图片的透明度
* @author 刘楠
*
* 2016-2-19下午11:09:43
*/
public class MainActivity extends Activity {
private ImageView iv;
private SeekBar seekbar;
private TextView tv;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
iv = (ImageView) findViewById(R.id.iv);
seekbar = (SeekBar) findViewById(R.id.seekbar);
tv = (TextView) findViewById(R.id.tv);
seekbar.setOnSeekBarChangeListener(new OnSeekBarChangeListener() {
@Override
public void onStopTrackingTouch(SeekBar seekBar) {
tv.setText(seekBar.getProgress()+"");
}
@Override
public void onStartTrackingTouch(SeekBar seekBar) {
tv.setText(seekBar.getProgress()+"");
}
@Override
public void onProgressChanged(SeekBar seekBar, int progress,
boolean fromUser) {
tv.setText(seekBar.getProgress()+"");
iv.setImageAlpha(progress);
}
});
}
}
4.RationBar---使用星星做为进度条,评价是常用
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".MainActivity" >
<ImageView
android:id="@+id/iv"
android:layout_width="match_parent"
android:layout_height="240dp"
android:src="@drawable/lijiang"
android:alpha="1"/>
<RatingBar
android:id="@+id/ratingbar"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:max="255"
android:progress="255"
android:numStars="5"
android:stepSize="0.5"/>
<TextView
android:gravity="center_horizontal"
android:id="@+id/tv"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
</LinearLayout>
/**
* 使用星星做为进度条
* @author 刘楠
*
* 2016-2-19下午11:14:00
*/
public class MainActivity extends Activity {
private ImageView iv;
private RatingBar ratingbar;
private TextView tv;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
iv = (ImageView) findViewById(R.id.iv);
ratingbar = (RatingBar) findViewById(R.id.ratingbar);
ratingbar.setOnRatingBarChangeListener(new OnRatingBarChangeListener() {
@SuppressLint("NewApi")
@Override
public void onRatingChanged(RatingBar ratingBar, float rating,
boolean fromUser) {
iv.setImageAlpha((int) (rating*255/5));
}
});
}
}
5.选项卡
<?xml version="1.0" encoding="utf-8"?>
<TabHost
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@android:id/tabhost"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<TabWidget
android:id="@android:id/tabs"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
<FrameLayout
android:id="@android:id/tabcontent"
android:layout_width="match_parent"
android:layout_height="match_parent">
<!-- 定义第一个标签页的内容 -->
<LinearLayout
android:id="@+id/tab01"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="女儿国国王 - 2012/12/12"
android:textSize="11pt" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="东海龙女 - 2012/12/18"
android:textSize="11pt" />
</LinearLayout>
<!-- 定义第二个标签页的内容 -->
<LinearLayout
android:id="@+id/tab02"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="白骨精 - 2012/08/12"
android:textSize="11pt" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="蜘蛛精 - 2012/09/20"
android:textSize="11pt" />
</LinearLayout>
<!-- 定义第三个标签页的内容 -->
<LinearLayout
android:id="@+id/tab03"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:textSize="11pt">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="孙悟空 - 2012/09/19"
android:textSize="11pt" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="猪八戒 - 2012/10/12"
android:textSize="11pt" />
</LinearLayout>
</FrameLayout>
</LinearLayout>
</TabHost>
/**
* 使用选项卡,
* Activity要继承TabActivity
*
* @author 刘楠
*
* 2016-2-19下午11:16:12
*/
public class MainActivity extends TabActivity
{
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 获取该Activity里面的TabHost组件
TabHost tabHost = getTabHost();
// 创建第一个Tab页
TabHost.TabSpec tab1 = tabHost.newTabSpec("tab1")
.setIndicator("已接电话") // 设置标题
.setContent(R.id.tab01); //设置内容
// 添加第一个标签页
tabHost.addTab(tab1);
TabHost.TabSpec tab2 = tabHost.newTabSpec("tab2")
// 在标签标题上放置图标
.setIndicator("呼出电话", getResources()
.getDrawable(R.drawable.ic_launcher))
.setContent(R.id.tab02);
// 添加第二个标签页
tabHost.addTab(tab2);
TabHost.TabSpec tab3 = tabHost.newTabSpec("tab3")
.setIndicator("未接电话")
.setContent(R.id.tab03);
// 添加第三个标签页
tabHost.addTab(tab3);
}
}
7.ViewFlipper
使用ViewFlipper来播放图片 这个控件继承了ViewAnimator
调用showPrevious显示上一张
showNext();显示下一张
startFlipping();开始自动播放
stopFlipping();停止播放
设置进入的动画效果与方向
viewFlipper.setInAnimation(this, android.R.anim.slide_out_right);
设置切换下一张时的动画效果与方向
viewFlipper.setOutAnimation(this, android.R.anim.slide_in_left);
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<ViewFlipper
android:id="@+id/details"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:flipInterval="2000"
>
<ImageView
android:src="@drawable/android"
android:layout_width="match_parent"
android:layout_height="wrap_content">
</ImageView>
<ImageView
android:src="@drawable/java"
android:layout_width="match_parent"
android:layout_height="wrap_content">
</ImageView>
<ImageView
android:src="@drawable/javaee"
android:layout_width="match_parent"
android:layout_height="wrap_content">
</ImageView>
</ViewFlipper>
<Button
android:text="<"
android:onClick="prev"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignParentLeft="true"/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_centerInParent="true"
android:onClick="auto"
android:text="自动播放"/>
<Button
android:text=">"
android:onClick="next"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignParentRight="true"/>
</RelativeLayout>
/**
* 使用ViewFlipper来播放图片 这个控件继承了ViewAnimator
*
* 调用showPrevious显示上一张
* showNext();显示下一张
startFlipping();开始自动播放
stopFlipping();停止播放
设置进入的动画效果与方向
viewFlipper.setInAnimation(this, android.R.anim.slide_out_right);
设置切换下一张时的动画效果与方向
viewFlipper.setOutAnimation(this, android.R.anim.slide_in_left);
* @author 刘楠
*
* 2016-2-19下午11:19:40
*/
public class MainActivity extends Activity {
private ViewFlipper viewFlipper;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
viewFlipper = (ViewFlipper) findViewById(R.id.details);
}
/*
* 上一个
*/
public void prev(View v){
viewFlipper.setInAnimation(this, android.R.anim.slide_out_right);
viewFlipper.setOutAnimation(this, android.R.anim.slide_in_left);
viewFlipper.showPrevious();
viewFlipper.stopFlipping();
}
/*
* 下一个
*/
public void next(View v){
viewFlipper.setInAnimation(this, android.R.anim.slide_in_left);
viewFlipper.setOutAnimation(this, android.R.anim.slide_out_right);
viewFlipper.showNext();
viewFlipper.stopFlipping();
}
/*
* 自动播放
*/
public void auto(View v){
viewFlipper.setInAnimation(this, android.R.anim.slide_in_left);
viewFlipper.setOutAnimation(this, android.R.anim.slide_out_right);
viewFlipper.startFlipping();
}
}
8.TextSwitch
使用时要建立一个工厂,返回必须为TextView
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity" >
<TextSwitcher
android:id="@+id/textSwicher"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inAnimation="@android:anim/slide_in_left"
android:outAnimation="@android:anim/slide_out_right"
android:onClick="next"/>
</LinearLayout>
/**
* TextSwitcher继承 ViewSwitcher继承ViewAnimator
* 使用时要建立一个工厂
*
* @author 刘楠
*
* 2016-2-19下午11:23:23
*/
public class MainActivity extends Activity {
private TextSwitcher textSwicher;
private String [] strs = {
"疯狂JAVA讲义",
"疯狂Andorid讲义",
"疯狂XML讲义",
"疯狂Ajax讲义",
"疯狂JAVA EE讲义"
};
private int cusStr=0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
textSwicher = (TextSwitcher) findViewById(R.id.textSwicher);
//设置工厂
textSwicher.setFactory(new ViewFactory() {
@Override
public View makeView() {
TextView tv= new TextView(MainActivity.this);
tv.setTextSize(40);
tv.setTextColor(Color.MAGENTA);
return tv;
}
});
}
public void next(View view){
textSwicher.setText(strs[cusStr++%strs.length]);
}
}
9.Data类控件
CalendarView
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:orientation="vertical"
tools:context="com.itheima.calendarview.MainActivity">
<TextView
android:gravity="center_horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="28sp"
android:textColor="#66ff0000"
android:text="请选择日期"/>
<CalendarView
android:id="@+id/cv"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:firstDayOfWeek="1"
android:shownWeekCount="4"
android:selectedWeekBackgroundColor="#aff"
android:focusedMonthDateColor="#f00"
android:weekSeparatorLineColor="#ff0"
android:unfocusedMonthDateColor="#f9f">
</CalendarView>
<TextView
android:id="@+id/tv"
android:gravity="center_horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="28sp"
android:textColor="#66ff0000"/>
</LinearLayout>
public class MainActivity extends AppCompatActivity {
private CalendarView cv;
private TextView tv;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
cv = (CalendarView) findViewById(R.id.cv);
tv = (TextView) findViewById(R.id.tv);
//设置监听器
cv.setOnDateChangeListener(new CalendarView.OnDateChangeListener() {
@Override
public void onSelectedDayChange(CalendarView view, int year, int month, int dayOfMonth) {
//显示用户选择日期
Toast.makeText(MainActivity.this,year+"年"+month+"月"+dayOfMonth+"日",Toast.LENGTH_SHORT).show();
}
});
}
}
DatePicker与TimePicker
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:orientation="vertical"
tools:context="com.itheima.datetimepicker.MainActivity">
<TextView
android:gravity="center_horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="28sp"
android:text="请选择日期"/>
<DatePicker
android:id="@+id/dataPicker"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:calendarViewShown="true"
android:calendarTextColor="@color/colorAccent"
android:layout_gravity="center_horizontal"
android:startYear="2000"
android:endYear="2020"
android:spinnersShown="true">
</DatePicker>
<TimePicker
android:id="@+id/timePicker"
android:layout_width="match_parent"
android:layout_height="wrap_content"
>
</TimePicker>
<EditText
android:id="@+id/et_show"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:editable="false"
android:cursorVisible="false"/>
</LinearLayout>
public class MainActivity extends AppCompatActivity {
private DatePicker dataPicker;
private TimePicker timePicker;
private EditText et_show;
private int year;
private int month;
private int day;
private int hour;
private int minute;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
dataPicker = (DatePicker) findViewById(R.id.dataPicker);
timePicker = (TimePicker) findViewById(R.id.timePicker);
et_show = (EditText) findViewById(R.id.et_show);
/*
获取当前时间
*/
Calendar calendar = Calendar.getInstance();
year =calendar.get(Calendar.YEAR);
month =calendar.get(Calendar.MONTH);
day =calendar.get(Calendar.DAY_OF_MONTH);
hour =calendar.get(Calendar.HOUR_OF_DAY);
minute =calendar.get(Calendar.MINUTE);
/*
初始化日期DataPicker组件
*/
dataPicker.init(year, month, day, new DatePicker.OnDateChangedListener() {
@Override
public void onDateChanged(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
MainActivity.this.year=year;
MainActivity.this.month = monthOfYear;
MainActivity.this.day = dayOfMonth;
showDate(year,month,day,hour,minute);
}
});
/*
设置监听器
*/
timePicker.setOnTimeChangedListener(new TimePicker.OnTimeChangedListener() {
@Override
public void onTimeChanged(TimePicker view, int hourOfDay, int minute) {
MainActivity.this.hour=hourOfDay;
MainActivity.this.minute = minute;
showDate(year,month,day,hour,minute);
}
});
}
private void showDate(int year,int month,int day,int hour,int minute){
et_show.setText("日期:"+year+"年"+month+"月"+day+"月"+hour+"时"+minute+"分");
}
}
10.SearchView
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:orientation="vertical"
tools:context="com.itheima.searchview.MainActivity">
<SearchView
android:id="@+id/sv"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
<ListView
android:id="@+id/lv"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1">
</ListView>
</LinearLayout>
/**
* 搜索框的使用
*/
public class MainActivity extends AppCompatActivity {
private SearchView sv;
private ListView lv;
private String [] mStrings = {
"aaa",
"bbbb",
"ccccc",
"dddddd",
"eeeeeee"
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
sv = (SearchView) findViewById(R.id.sv);
lv = (ListView) findViewById(R.id.lv);
//适配器
lv.setAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, mStrings));
//启用过滤
lv.setTextFilterEnabled(true);
//是否自动缩小为图标
sv.setIconifiedByDefault(false);
//显示搜索按键
sv.setSubmitButtonEnabled(true);
//设置搜索框内显示的文件
sv.setQueryHint("查找");
sv.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
@Override
public boolean onQueryTextSubmit(String query) {
Toast.makeText(MainActivity.this,"选择是:"+query,Toast.LENGTH_SHORT).show();
return false;
}
/**
* 单击搜索按键时激发的事件
* @param newText
* @return
*/
@Override
public boolean onQueryTextChange(String newText) {
if(TextUtils.isEmpty(newText)){
//清除listview中的内容
lv.clearTextFilter();
}else{
lv.setFilterText(newText);
}
return true;
}
});
}
}
11自动完成AutoCompleteTextView
AutoCompleteTextView 单个完成
MultiAutoCompleteTextView可以有多个值,用,号分隔
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:orientation="vertical"
tools:context=".MainActivity" >
<AutoCompleteTextView
android:id="@+id/auto"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:completionHint="请选择喜欢的图书"
android:dropDownHorizontalOffset="10dp"
android:completionThreshold="1"/>
<MultiAutoCompleteTextView
android:id="@+id/mauto"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:completionThreshold="1"/>
</LinearLayout>
/**
* 自动完成文件框
* @author 刘楠
*
* 2016-2-19下午11:55:16
*/
public class MainActivity extends Activity {
private AutoCompleteTextView auto;
private MultiAutoCompleteTextView mauto;
String[] books = { "疯狂JAVA讲义", "疯狂Android讲义", "疯狂Ajax讲义", "疯狂XML讲义",
"疯狂workflow讲义" };
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
auto = (AutoCompleteTextView) findViewById(R.id.auto);
mauto = (MultiAutoCompleteTextView) findViewById(R.id.mauto);
ArrayAdapter<String> adapter = new ArrayAdapter<String>(
MainActivity.this, android.R.layout.simple_dropdown_item_1line,
books);
auto.setAdapter(adapter);
mauto.setAdapter(adapter);
//设置分隔符
mauto.setTokenizer(new MultiAutoCompleteTextView.CommaTokenizer());
}
}
12.时钟
AnalogClock与TextClock
format12Hour:设置时钟12小时制字符串
format24Hour:设置时钟24小时制字符串
timeZone:设置时区
dial:设置模拟时钟表盘使用的图片
hand_hour:时针使用的图片
hand_minuties:分针使用的图片
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center_horizontal">
<!-- 定义模拟时钟 -->
<AnalogClock
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
<!-- 定义数字时钟 -->
<TextClock
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="10pt"
android:textColor="#f0f"
android:format12Hour="yyyy年MM月dd日 H:mma EEEE"
android:drawableEnd="@drawable/ic_launcher"/>
<!-- 定义模拟时钟,并使用自定义表盘、时针图片 -->
<AnalogClock
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:dial="@drawable/watch"
android:hand_minute="@drawable/hand"/>
</LinearLayout>
13计时器Chronometer
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center_horizontal">
<Chronometer
android:id="@+id/test"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="12pt"
android:textColor="#ffff0000"/>
<Button
android:id="@+id/start"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="启动"/>
</LinearLayout>
/**
* 计时器
* @author 刘楠
*
* 2016-2-20上午12:15:09
*/
public class MainActivity extends Activity {
Chronometer ch;
Button start;
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 获取计时器组件
ch = (Chronometer) findViewById(R.id.test);
// 获取“开始”按钮
start = (Button) findViewById(R.id.start);
start.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View source)
{
// 设置开始计时时间
ch.setBase(SystemClock.elapsedRealtime());
// 启动计时器
ch.start();
start.setEnabled(false);
}
});
// 为Chronometer绑定事件监听器
ch.setOnChronometerTickListener(new OnChronometerTickListener()
{
@Override
public void onChronometerTick(Chronometer ch)
{
// 如果从开始计时到现在超过了20s
if (SystemClock.elapsedRealtime() - ch.getBase() > 20 * 1000)
{
ch.stop();
start.setEnabled(true);
}
}
});
}
}