android3.0新特性UI.doc_第1页
android3.0新特性UI.doc_第2页
android3.0新特性UI.doc_第3页
android3.0新特性UI.doc_第4页
android3.0新特性UI.doc_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Android3.0新增UI控件AdapterViewAnimator控件AdapterViewAnimator(堆View),已知子类有AdapterViewFlipper, StackView,是一系列View的集合,这些View叠加一起,并且View之间可以进行切换,并且在多个View切换过程体现渐隐渐现的动画效果。通过AdapterViewAnimator.setAdapter()方法设置一组要显示的View,通过AdapterViewAnimator.showPrevious()方法移动到前一个View,通过AdapterViewAnimator.showNext()移动到下一个View,示例代码如下:效果图:Src//AdapterViewAnimatorActivity.javares/layout/adapterviewanimator_layout.xmlAdapterViewFlipper控件AdapterViewFilpper(堆View),是AdapterViewAnimator的子类,是一系列View的集合,这些View叠加一起,并且View之间可以进行切换,并且在多个View切换过程体现渐隐渐现的动画效果。通过AdapterViewFilpper.setAdapter()方法设置一组要显示的View,通过AdapterViewFilpper.showPrevious()方法移动到前一个View,通过AdapterViewFilpper.showNext()移动到下一个View,示例代码如下:效果图:Src//AdapterViewFlipperActivity.javapackage ;import android.app.Activity;import android.graphics.Color; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.AdapterViewFlipper;import android.widget.Button; public class AdapterViewFlipperActivity extends Activity private int mColors = Color.BLUE, Color.CYAN, Color.GRAY, Color.GREEN, Color.RED; Override public void onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState); setContentView(R.layout.adapterviewflipper_layout); final AdapterViewFlipper adapterViewFlipper = (AdapterViewFlipper) findViewById(R.id.mAdapterViewFlipper); ColorAdapter colorAdapter = new ColorAdapter(this, mColors); adapterViewFlipper.setAdapter(colorAdapter); final Button previousButon = (Button) findViewById(R.id.previousButton); previousButon.setOnClickListener(new OnClickListener() public void onClick(View view) adapterViewFlipper.showPrevious(); ); final Button nextButton = (Button) findViewById(R.id.nextButton); nextButton.setOnClickListener(new OnClickListener() public void onClick(View view) adapterViewFlipper.showNext(); ); res/layout/adapterviewflipper_layout.xml ListPopupWindow控件锚于宿主视图,并显示如一个建议,当输入到一个列表中的选项的EditText查看列表。CalendarView控件CalendarView是一个日历控件,作为显示和选择日期。日期范围的及日历样式是可配置的。用户可以选择一个日期,也可以触摸滚动日历。可在xml布局中添加此控件,可通过CalendarView.setOnDateChangeListener()方法为此控件的每一格设置点击事件。示例代码如下:效果图:Src//CalendarViewActivity.javapackage ;import android.app.Activity;import android.os.Bundle;import android.widget.CalendarView;import android.widget.CalendarView.OnDateChangeListener;import android.widget.Toast;public class CalendarViewActivity extends ActivityOverrideprotected void onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState); setContentView(R.layout.calendarview_layout);CalendarView calendarView = (CalendarView) findViewById(R.id.calendarView);calendarView.setOnDateChangeListener(new OnDateChangeListener() Overridepublic void onSelectedDayChange(CalendarView view, int year, int month,int dayOfMonth) Toast.makeText(CalendarViewActivity.this, getString(R.string.select) + year + getString(R.string.year) + month + getString(R.string.month) + dayOfMonth + getString(R.string.day), Toast.LENGTH_SHORT).show(););res/layout/calendarview_layout.xmlNumberPicker控件这控件可用于设置时间的控件,允许用户选择一个数字,从一个预定范围。该部件提供了一个输入字段和向上和向下选择一个数字按钮。可按这两个按钮选择一个值填入显示框中,显示框还允许用户触摸滚动,这时会显示上个与下个的值,可以选择当前值来显示。此类中提供了NumberPicker.setLeft()方法设置最小值,NumberPicker.setMaxValue()设置最大值,可用NumberPicker.setOnValueChangedListener()方法监听更改值事件,只需new OnValueChangeListener对象,并重写里面onValueChange()方法即可,示例代码如下:效果图:Src//NumberPickerActivity.javapackage ;import android.app.Activity;import android.os.Bundle;import android.widget.NumberPicker;import android.widget.NumberPicker.OnValueChangeListener;import android.widget.Toast;public class NumberPickerActivity extends Activity NumberPicker mNumberPicker1 = null;NumberPicker mNumberPicker2 = null;NumberPicker mNumberPicker3 = null;Overrideprotected void onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState);setContentView(R.layout.numberpicker_layout);mNumberPicker1 = (NumberPicker) findViewById(R.id.numberPicker1);mNumberPicker1.setLeft(0);mNumberPicker1.setMaxValue(24);mNumberPicker1.setOnValueChangedListener(new OnValueChangeListener() Overridepublic void onValueChange(NumberPicker picker, int oldVal, int newVal) Toast.makeText(NumberPickerActivity.this,picker.getValue()+getString(R.string.hours), Toast.LENGTH_SHORT).show(););mNumberPicker2 = (NumberPicker) findViewById(R.id.numberPicker2);mNumberPicker2.setLeft(0);mNumberPicker2.setMaxValue(60);mNumberPicker2.setOnValueChangedListener(new OnValueChangeListener() Overridepublic void onValueChange(NumberPicker picker, int oldVal, int newVal) Toast.makeText(NumberPickerActivity.this,picker.getValue()+getString(R.string.minutes), Toast.LENGTH_SHORT).show(););mNumberPicker3 = (NumberPicker) findViewById(R.id.numberPicker3);mNumberPicker3.setLeft(0);mNumberPicker3.setMaxValue(60);mNumberPicker3.setOnValueChangedListener(new OnValueChangeListener() Overridepublic void onValueChange(NumberPicker picker, int oldVal, int newVal) Toast.makeText(NumberPickerActivity.this,picker.getValue()+getString(R.string.second), Toast.LENGTH_SHORT).show(););res/layout/numberpicker_layout.xml StackView控件StackView(堆View),是AdapterViewAnimator的子类,一系列View的集合,这些View以层叠样式显示,并且View之间可以进行切换(切换方式有两种:(1)拖动StackView组件中的某一个View,(2)通过代码控制),这样每一个View都有机会显示给用户,供用户使用,并且在多个View切换过程中可以添加动画效果。通过StackView.setAdapter()方法设置一组要显示的View,通过StackView.showPrevious()方法移动到前一个View,通过StackView.showNext()移动到下一个View示例代码如下:效果图:Src//StackViewActivity.javapackage ;import android.app.Activity;import android.graphics.Color; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.StackView;public class StackViewActivity extends Activity private int mColors = Color.BLUE, Color.CYAN, Color.GRAY, Color.GREEN, Color.RED; Override public void onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState); setContentView(R.layout.stackview_layout); final StackView stackView = (StackView) findViewById(R.id.mStackView); ColorAdapter colorAdapter = new ColorAdapter(this, mColors); stackView.setAdapter(colorAdapter); final Button previousButon = (Button) findViewById(R.id.previousButton); previousButon.setOnClickListener(new OnClickListener() public void onClick(View view) stackView.showPrevious(); ); final Button nextButton = (Button) findViewById(R.id.nextButton); nextButton.setOnClickListener(new OnClickListener() public void onClick(View view) stackView.showNext(); ); Src//ColorAdapter.javapackage ;import android.content.Context; import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter; import android.widget.LinearLayout; public class ColorAdapter extends BaseAdapter private Context mContext; private int mColors; public ColorAdapter(Context context, int colors) mContext = context; mColors = colors; public int getCount() return mColors = null ? 0 : mColors.length; public Object getItem(int position) return mColors = null ? null : mColorsposition; public long getItemId(int position) return position; public View getView(int position, View cacheView, ViewGroup parent) LinearLayout.LayoutParams colorLayoutParams = new LinearLayout.LayoutParams(100, 100); LinearLayout colorLayout = new LinearLayout(mContext); colorLayout.setBackgroundColor(mColorsposition); colorLayout.setLayoutParams(colorLayoutParams); return colorLayout; res/layout/stackview_layout.xml PopupMenu控件PopupMenu是个下拉菜单控件,可增加多条下拉菜单以及给每条下拉菜单增加子菜单。可通过new PopupMenu(context, view)创建一个下拉菜单,view为点击的控件,点此view时显示菜单,通过PopupMenu.getMenuInflater().inflate(R.menu.popup, PopupMenu.getMenu()方式为下接菜单设置主菜单项及子菜单项,R.menu.popup为下拉菜单资源文件,getMenu用于取得与此相关的弹出菜单对象,整个方法的作用就是将资源文件中的菜单项加入弹出菜单中,通过PopupMenu.setOnMenuItemClickListener()方法为每个弹出菜单项设定点击事件。示例代码如下:效果图:Src//PopupMenuActivity.javapackage ;import android.app.Activity;import android.os.Bundle;import android.view.MenuItem;import android.view.View;import android.widget.PopupMenu;import android.widget.Toast;public class PopupMenuActivity extends Activity PopupMenu popup = null; Override protected void onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState); setContentView(R.layout.popupmenu_layout); public void onPopupButtonClick(View button) popup = new PopupMenu(this, button); popup.getMenuInflater().inflate(R.menu.popup, popup.getMenu(); popup.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() public boolean onMenuItemClick(MenuItem item) if(item.getTitle().equals(getString(R.string.exit) popup.dismiss(); else Toast.makeText(PopupMenuActivity.this, getString(R.string.click) + item.getTitle(),Toast.LENGTH_SHORT).show(); return true; ); popup.show(); res/menu/popup.xml res/layout/popupmenu_layout.xml SearchView控件SearchView是一个搜索框控件,可增加一个ListView实现自动补全功能,通过Adapter给此控件加入自动补全列表,可根据输入的字段进行搜索,SearchView.setOnQueryTextListener()监听事件,其中onQueryTextChange()方法监听输入事件,onQueryTextSubmit()方法监听回车或搜索按钮事件。SearchView.setSubmitButtonEnabled()方法用于显示一个执行搜索功能的按钮,点此按钮时会触发onQueryTextSubmit()方法。SearchView.setQueryHint()方法用于控件默认显示的文本,示例代码如下:效果图:Src//SearchViewActivity.javapackage ;import android.app.Activity;import android.os.Bundle;import android.text.TextUtils;import android.view.Window;import android.widget.ArrayAdapter;import android.widget.ListView;import android.widget.SearchView;import android.widget.Toast;/* * 搜索框控件,可自动补全 */public class SearchViewActivity extends Activity implements SearchView.OnQueryTextListener private SearchView mSearchView; private ListView mListView; /*自动补全列表*/ private final String mStrings = a,b,c; Override protected void onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState); getWindow().requestFeature(Window.FEATURE_ACTION_BAR); setContentView(R.layout.searchview_layout); mListView = (ListView) findViewById(R.id.list_view); mListView.setAdapter(new ArrayAdapter(this, android.R.layout.simple_list_item_1,mStrings); mListView.setTextFilterEnabled(true); mSearchView = (SearchView) findViewById(R.id.search_view); mSearchView.setIconifiedByDefault(false); mSearchView.setOnQueryTextListener(this); mSearchView.setSubmitButtonEnabled(true); mSearchView.setQueryHint(getString(R.string.search); /*输入字符时触发*/ public boolean onQueryTextChange(String newText) if (TextUtils.isEmpty(newText) mListView.clearTextFilter(); else mListView.setFilterText(newText.toString(); return true; /*按回车或搜索按钮时触发,此处编写搜索代码*/ public boolean onQueryTextSubmit(String query) Toast

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论