UI

UI Controls (输入控制)

1.UI Controls是什么?

 

  UI Controls是一组与用户的输入相关的一些对象.

 

 

2.UI Controls 应用场合?

 

UI Controls 的应用场合与具体的UI Controls对象有关。

 

 

3.UI Controls 涉及到的相关对象?

 

1)Buttons (按钮)

 

a)Button

b)ImageButton

c)Switch(开关):checked

相关方法:

1)setOnCheckedChangeListener();

2)isChecked();

d)CheckBox(复选框):checked

常用属性:

android:checked="true"

相关方法:

1)getCheckedRadioButtonId(); //获得选中的Button

e)RadioButton(单选框):RadioGroup(线性布局的子类类型)

 

2)TextFields (文本域)

a)EditText(编辑框)

常用属性:

android:hint="input phone"

android:inputType="textPassword"

android:imeOptions="actionDone"

android:focusable="true"

相关方法:

1)setOnClickListener();

2)setOnTouchListener(一个EditText时使用)

3)setFocusable(true),设置对象可编辑

4)setFocusableInTouchMode(true);

5)setSelection()//设置光标位置

b)AutoCompleteTextView (自动完成编辑框)

相关方法:

1)setThreshold(1); 设置何时出现提示字符

c)SearchView(查询框,内置了一个AutoCompleteText)

相关方法:

1)setOnQueryTextListener();

2)onActionViewExpanded();//展开SearchView

3)getResources().getIdentifier("android:id/search_plate", null, getPackageName());//获得SearchView中的资源Id

4)layout.setBackgroundResource(); //设置LinearLayout的背景

5)adapter.getFilter()// 获得过滤器

.filter(newText);// 过滤listview中要显示的内容

3)Bars()

 

a)ProgressBar (进度条)

相关方法:

1)setMax(10);// 设置进度最大值

2)setProgress(count++);// 设置当前进度值

b)SeekBar(拖动条)

特殊属性:

android:thumb="@drawable/..."

相关方法:setOnSeekBarChangeListener();

c)RatingBar(评价条)

特殊属性:

android:numStars="5"

android:stepSize="0.5"

相关方法:

1)setOnRatingBarChangeListener();

2)setRating();

----------------------------------------

Input Controls FAQ?

1.Input Controls 组件的选择器如何设置?

 

1)background

2)textColor

3)thumbs (seekbar)

4).....

 

选择器的定义及访问

1)res/drawable/selector.xml

2)R.drawable.selector

 

Selector中可以引入一些shape(图形)文件

 

1)res/drawable/shape.xml

2)R.drawable.shape

 

2.UI Controls 的事件处理?

1)软键盘事件

2)onChange,.....

 

----------------------------------------

Input Events (输入事件)

 

1.事件类型

 

1)onClick

2)onTouch

3)onChecked

4)onChange

5)onKey

6)......

 

2.事件传递机制(分发机制)

 

事件本身会存在一种传递机制,假如一个组件

上添加了多个事件,此事件会按照一定的顺序

依次处理(由分发机制决定),一般会先执行

onTouch事件,此事件是借助

dispatchTouchEvent方法的分发机制实现的。

 

3.事件冒泡机制

 

android中的内层layout,外层layout对象

都添加了触摸事件时,当我们触摸内层容器

内层容器默认会将此事件传递到外层容器,

除非内层容器对事件进行了消费处理。

 

--------------------------------------

UI Components

 

1.UI Components 是什么?

 

1)是一些用于呈现view的一些组件

2)方便与用户进行更好的交互。

 

2.UI Components 的常用类型?

 

1)Menu (菜单)

2)ActionBar(动作栏)

3)Dialog(对话框)

4)Notification(通知)

5)Toast(通知)

6)Setting(设置,先不讲)

 

--------------------------------------

 

Menu (菜单)

 

1.选项菜单(Option Menu)

a)创建(重写onCreateOptionsMenu)

b)监听(重写onOptionsItemSelected)

item添加方式:

1)getMenuInflater().inflat(R.menu.main, menu);//采用xml方式添加item      

2)menu.add(0, 300, 106, "item06");// 采用Java代码方式添加item

相关方法:

1setShowAsAction(MenuItem.SHOW_AS_ACTION_NEVER);

2getActionView()// 获得某个itemActionView

 

2.上下文菜单(Context Menu)

a)注册(registerForContextMenu)

b)创建(onCreateContextMenu)

c)监听(onContextItemSelected)

 

3.弹出式菜单(PopuMenu):3.0api

1)创建(new PopuMenu(...))

2)监听(setOnMenuItemClickListener)

3)显示(show())

 

4.子菜单(以上每种菜单都有子菜单)

a)创建(重写onCreateOptionsMenu)

b)监听(重写onOptionsItemSelected)

item添加方式:            

1)getMenuInflater().inflate(R.menu.main, menu);//采用xml方式添加item           

2)menu.addSubMenu(1, 300, 500, "ItemB");// 采用Java代码方式添加item

 

--------------------------------------

 

ActionBar (动作栏)

 

1.ActionBar 是什么?

 

ActionBar android3.0推出的一个新的对象,此对象最主要的目的是在标题栏更好的为用户

呈现一些view组件,并实现与用户的交互,例如可以呈现Menu对象。

 

 

2.ActionBar 对象的应用?

 

1)获得ActionBar

a)getActionBar():前提是主题中需要包含actionBar

2)操作ActionBar

a)hide()

b)show()

c)setXXXX

 

3)修改ActionBar主题

a)style.xml中定义主题

<style name="MyCustomTheme" parent="@android:style/Theme.Holo.Light">

         <item name="android:actionBarStyle">@style/MyActionBarStyle</item>

    </style>

    <style name="MyActionBarStyle" parent=" @android:style/Widget.Holo.Light.ActionBar.Solid">

         <item name="android:background">@drawable/actionbar_background_01</item>

         <item name="android:displayOptions">useLogo</item>

    </style>

b)activity中引入主题

 

4)相关方法

a)setDisplayHomeAsUpEnabled(true);// 设置显示action向左的箭头

b)setHomeButtonEnabled(true); //设置home button可点击

c)setDisplayShowTitleEnabled(false);// 隐藏标题

d)setDisplayShowHomeEnabled(false);//隐藏home图标

e)setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);//设置actionBar的导航模式

f)addTab(ab.newTab().setText("Tab01").setTabListener(this));//添加tab导航         

g)setLogo(R.drawable.home_left_coach);// 使用自己的logo

h)setDisplayUseLogoEnabled(true);

i)setDisplayShowCustomEnabled(true);// 设置actionBar显示自定义view  

j)View.inflate(this, R.layout.title_item_1, null);//设置actionBar的自定义view

K)setCustomView(view,new ActionBar.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT, Gravity.CENTER));

 

----------------------------------------------------

 

对话框(Dialog)

 

1.Dialog 是什么?

1)Android 中的一个UI组件

2)Android 中的一个浮动窗口

 

2.Dialog 应用场合?

1)以浮动窗口形式呈现UI

2)以浮动窗口形式与用户交互

 

3.Dialog 对象的应用实现?

 

1)AlertDialog (提示对话框)

a)构建AlertDialog

AlertDialog.Builder builder=

new AlertDialog.Builder(this);

b)相关方法:

1)setIcon(R.drawable.ic_launcher);

2)setSingleChoiceItems(items, checkedItem, listener);

3)setMultiChoiceItems(items, checkedItems, listener);

4)setItems();

5)show();

6)create();

7)setTitle();

8)setMessage();

9)setPositiveButton("确定", null);

10)setNegativeButton("取消", null);

11)setNeutralButton("其它", null);

 

2)DatePickerDialog(日期对话框) (TimePickerDialog)

a)构建DatePickerDialog

new DatePickerDialog();

b)相关方法:

1)Calendar.getInstance();

2)get(Calendar.YEAR);

3)set(Calendar.YEAR, year); DateUtils.formatDateTime(MainActivity.this,

          c.getTimeInMillis(),

          DateUtils.FORMAT_SHOW_DATE

          | DateUtils.FORMAT_SHOW_WEEKDAY

          | DateUtils.FORMAT_SHOW_YEAR

          | DateUtils.FORMAT_ABBREV_MONTH

          | DateUtils.FORMAT_ABBREV_WEEKDAY);

 

3)ProgressDialog(进度对话框)

 

扩展:对话框形式的activity(主要是通过修改activity的主题)

 

----------------------------------------------------

Notification (通知)

 

1.Notification 是什么?

 

1)手机状态栏显示的一个对象

2)用于呈现View的一个对象

 

2.Notification 应用场合?

 

Notification一般应用于Android的服务端(service),

可以在service端创建,并发送,然后显示在状态栏。

 

 

例如:

1)软件更新的通知

2)短信的通知

3)未接电话的通知

4)播放音乐的通知

5)新闻头条通知

6)......

 

3.Notification 对象的应用?

 

1)构建Notification对象(借助builder对象)

a)Notification

b)NotificationCompat(兼容版本)

c)Builder

2)发送Notification对象(借助NotificationManager对象)

a)NofitificationManager

a.1)notify(int id,Notification ntf)

a.2)cancel(int id)

3)操作Notification对象(事件处理通过PendingIntent)

a)PendingIntent

 

4)定义Notification布局

a)RemoteViews

a.1)setXXXX

----------------------------------------------------

Toast(通知)

 

1.Toast 是什么?

1)Android 中的一个消息

2)用于呈现具体view信息

 

2.Toast 应用场合?

 

1)给出一个正确提示

2)给出一个错误提示

 

3.Toast 对象的应用?

 

1)创建

a)构造方法

b)静态方式(makeText)

 

2)设置(setXXX)

3)显示(show)

 

UI Components的同异性:

共性:这些对象不是view,但都可以某种表现方式呈现view

特性:构建方式,表现形式,监听方式

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值