android 常用控件
2013-01-09 22:04
267 查看
1.文本控件 TextView
跑马灯效果:系统提供的textView文本虽然自带跑马灯效果但是只有获取到焦点的时候才能实现效果,
所以需要重写TextView类的isFocused()方法使它永远返回true
2.EditView 编辑框
刚打开Activity的时候,很可能由于布局中含有一个EditView控件而自动弹出一个输入法,要想去掉这个讨厌的输入法框只要在EditView的父布局中加入一个属性即可
UI布局也与输入法分离,同时EditText区域自动缩小了。这样的话,即不影响用户输入,也不影响用户进一步操作!
而且即使打开了输入法,用户也可以看到UI全貌,感觉比较舒服、友好
此时只要在AndroidManifest.xml文件 这个activity中加入这个属性就可以
如果登录名称是email类型,为方便用户,设置android:inputType属性就可以直接让弹出的输入法适应输入邮件格式
3.ViewPage
使用这个控件需要先添加这个包,你的工程---->右键 android tools -------->addSupportLibrary 添加jar包
第一步 在xml里添加控件
第二步 继承PagerAdapter 之后ViewPager添加 这个Adapter即可
4.提示框Dialog
所有的提示类悬浮框都继承自这个类Dialog。最常用的两种提示框一个是AlertDialog,另一个是ProgresDialog,前者能和用户交互接受用户的操作,后者提示用户 有 一个费时的操作正在进行,请用户耐心等待
因为自己的应用程序很难和系统的主题相匹配,所以通常都会自己写这两类提示框。下面给出一个自定义ProgresDialog例子
pd_view的代码
activity提供了一个方法专门管理所有的提示框
前者会消除提示框,后者则不会有反应,需要自己重写onKeyDown()方法来消除提示框
5 ContextMenu 上下文菜单
第一步 覆写activity onCreateContextMenu()方法
第二步 给上下文菜单注册一个VIew,当长按View的时候弹出菜单
registerForContextMenu(View);
跑马灯效果:系统提供的textView文本虽然自带跑马灯效果但是只有获取到焦点的时候才能实现效果,
所以需要重写TextView类的isFocused()方法使它永远返回true
public class ScrollForeverTextView extends TextView { public ScrollForeverTextView(Context context) { super(context); // TODO Auto-generated constructor stub } public ScrollForeverTextView(Context context, AttributeSet attrs) { super(context, attrs); } public ScrollForeverTextView(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); } @Override public boolean isFocused() { return true;//关键是这个方法 } }加入xml中的代码 ScrollForeverTextView前面的是这个类所在的包名
<com.quickeasytrip.view.ScrollForeverTextView android:id="@+id/book_hotel_name_verify" android:layout_width="wrap_content" android:layout_height="wrap_content" android:ellipsize="marquee" android:singleLine="true" android:marqueeRepeatLimit="marquee_forever" android:scrollHorizontally="true" />
2.EditView 编辑框
刚打开Activity的时候,很可能由于布局中含有一个EditView控件而自动弹出一个输入法,要想去掉这个讨厌的输入法框只要在EditView的父布局中加入一个属性即可
解决之道:在EditText的父级控件中找一个,设置 android:focusable="true" android:focusableInTouchMode="true" 这样,就把EditText默认的行为截断了!点编辑框输入用户名密码时,最经常遇到的问题就是,输入法把编辑框遮挡,如果想编辑下一个EditView就必须关闭输入法,
UI布局也与输入法分离,同时EditText区域自动缩小了。这样的话,即不影响用户输入,也不影响用户进一步操作!
而且即使打开了输入法,用户也可以看到UI全貌,感觉比较舒服、友好
此时只要在AndroidManifest.xml文件 这个activity中加入这个属性就可以
android:windowSoftInputMode="adjustResize"
如果登录名称是email类型,为方便用户,设置android:inputType属性就可以直接让弹出的输入法适应输入邮件格式
android:inputType="textEmailAddress"适合输入邮件 android:inputType="number"适合输入数字
3.ViewPage
使用这个控件需要先添加这个包,你的工程---->右键 android tools -------->addSupportLibrary 添加jar包
第一步 在xml里添加控件
<android.support.v4.view.ViewPager android:id="@+id/pagerMain" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_below="@+id/advert" />
第二步 继承PagerAdapter 之后ViewPager添加 这个Adapter即可
public class MyPagerAdapter extends PagerAdapter { public List<View> mListViews = null; ViewPager mViewPager = null; public MyPagerAdapter(List<View> mListViews, ViewPager viewPager) { this.mViewPager = viewPager; this.mListViews = mListViews; } @Override public int getCount() { return mListViews.size(); } @Override public boolean isViewFromObject(View arg0, Object arg1) { return arg0 == (arg1); } @Override public Object instantiateItem(View container, int position) { ((ViewPager) container).addView(mListViews.get(position)); return mListViews.get(position); } @Override public void destroyItem(View container, int position, Object object) { if (mListViews.size() > 0) { if ((mListViews.size() - 1) >= position) { mViewPager.removeView(mListViews.get(position)); }//经过实际测试,这个方法经常会报下标越界错误,这样写能有效避免类似错误 } } }
4.提示框Dialog
所有的提示类悬浮框都继承自这个类Dialog。最常用的两种提示框一个是AlertDialog,另一个是ProgresDialog,前者能和用户交互接受用户的操作,后者提示用户 有 一个费时的操作正在进行,请用户耐心等待
因为自己的应用程序很难和系统的主题相匹配,所以通常都会自己写这两类提示框。下面给出一个自定义ProgresDialog例子
View pdView = factory.inflate(R.layout.pd_view, null); Dialog mProgressDialog = new Dialog(this, R.style.nobgDialog); mProgressDialog.setContentView(pdView); //最后执行show方法显示提示框mProgressDialog.show();
pd_view的代码
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="150dip" android:layout_height="wrap_content" android:background="@drawable/pd_bg" android:gravity="center" android:orientation="horizontal" > <ProgressBar android:id="@+id/loading_process" android:layout_width="34dip" android:layout_height="34dip" android:indeterminate="false" android:indeterminateDrawable="@anim/frame_animation" /> <TextView android:id="@+id/mPdText" android:layout_width="wrap_content" android:layout_height="wrap_content" android:paddingLeft="10dip" android:text="请稍后..." android:textColor="@android:color/black" android:textSize="14dip" android:textStyle="bold" /> </LinearLayout>动画列表代码,当达到八帧每帧100毫秒的时候转动效果最流畅
<?xml version="1.0" encoding="utf-8"?> <animation-list xmlns:android="http://schemas.android.com/apk/res/android" android:oneshot="false" > <item android:drawable="@drawable/scan_01" android:duration="100"/> <item android:drawable="@drawable/scan_02" android:duration="100" /> <item android:drawable="@drawable/scan_03" android:duration="100" /> <item android:drawable="@drawable/scan_04" android:duration="100" /> <item android:drawable="@drawable/scan_05" android:duration="100" /> <item android:drawable="@drawable/scan_06" android:duration="100" /> <item android:drawable="@drawable/scan_07" android:duration="100" /> <item android:drawable="@drawable/scan_08" android:duration="100" /> </animation-list>
activity提供了一个方法专门管理所有的提示框
@Override protected Dialog onCreateDialog(int id, Bundle args) { ProgressDialog dialog = new ProgressDialog(this); dialog.setMessage("等待狂"); return dialog; }调用showDialog(id);来显示具体的提示框,编程时dialog.show() 也能显示,好像这个方法是没用的,事实上,当你按back键返回操作时
前者会消除提示框,后者则不会有反应,需要自己重写onKeyDown()方法来消除提示框
5 ContextMenu 上下文菜单
第一步 覆写activity onCreateContextMenu()方法
@Override public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) { // set context menu title menu.setHeaderTitle("文件操作"); // add context menu item menu.add(0, 1, Menu.NONE, "发送"); menu.add(0, 2, Menu.NONE, "标记为重要"); menu.add(0, 3, Menu.NONE, "重命名"); menu.add(0, 4, Menu.NONE, "删除"); super.onCreateContextMenu(menu, v, menuInfo); }
第二步 给上下文菜单注册一个VIew,当长按View的时候弹出菜单
registerForContextMenu(View);
相关文章推荐
- android常用控件介绍
- Android Material Design 控件常用的属性(转)
- 5.Android 游戏开发常用的系统控件(ProgressBar、Seekbar)
- Android相对布局中控件的常用属性【转】
- 一个封装android开发常用控件的库
- Android 控件布局常用的属性
- Android开发编码规范之常用控件布局(三)
- Android快速开发框架Android_BaseLib,集成了常用工具类,自定义View控件,Base基类封装,常用开源框架
- Android 常用控件讲解 推荐
- 【读书笔记《Android游戏编程之从零开始》】4.Android 游戏开发常用的系统控件(EditText、CheckBox、Radiobutton)
- Android UI开发中的常用控件TextView
- Android部分常用控件
- Android 常用控件自定义样式RadioButton、CheckBox、ProgressBar、
- Android最常用而又最难用控件—ListView(三)。
- android应用开发笔记---常用控件使用方法
- 【Android成长之路】最常用和最难用的控件——ListView的浅谈(ListView 的简单用法)
- Android 5.x常用控件(一)
- Android常用控件—Spinner下拉列表(使用ArrayAdapter和自定义Adapter实现)
- Android常用控件--TimePickerDialog(时间选择对话框)
- Android布局常用控件