一:自定义View 1.在自定义View时 自定义View类要继承于View类或View类的子类 然后重写View的几个方法 onfinishinflate方法:在xml文件中定义了该View后,在加载完成后会回调该方法 OnMeasure 方法:检测View组件大小以及包含的子View组件的大小 Onlayout 方法:在检测完成 需要绘制该组件 赋予大小 位置的时候 回调此方法 OnSizeChanged 方法:在View的大小发生改变的时候会回调此方法 OnDraw 方法:在View要绘制的时候 回调此方法 onkeyDown 在某个键 被按下时回调此方法 如安卓的物理返回键监听 就可以通过判断keycode等于KEYCODE_BACK的方式来实现 onKeyUp 当用户松开某个键时会回调此方法 onTeachEvent 在发生了触摸事件后会回调此方法 onWindowsFocusChanged 当组件可见性发生改变时候回调此方法
二 帧布局 FrameLayout 属性 foreground 帧布局的前景图像 foregroundGravity 前景图像的gravity属性
三 相对布局 RelativeLayout 属性 gravity 子组件的对齐方式 ignoreGravity 哪个组件不受gravity组件的影响
Boolean类型值: layout_centerHorizental 子组件位于布局容器的水平居中位置 layout_centerVertical 子组件位于布局容器的垂直居中位置 layout_centerInParent 子组件位于布局容器的中央 layout_alignParentBottom 子组件位于布局容器的底部 layout_alignParentStart 子组件位于布局容器的左侧对齐 layout_alignParentEnd 子组件位于布局容器的右侧对齐 layout_alignParentTop 子组件位于布局容器的顶部
相对于其他空间位置的: layout_toEndOf 子组件位于某控件的右侧 layout_toStartOf 子组件位于某控件的左侧 layout_above 子组件位于某控件的上方 layout_below 子组件位于某控件的下方 layout_alignTop 子组件位于某控件的上边界对齐 layout_alignBottom 子组件位于某控件的下边界对齐 layout_alignStart 子组件位于某控件的左边界对齐 layout_alignEnd 子组件位于某控件的右边界对齐
四 控件: TextView textview是edittext button的父类 Butoon ImageButoon RadioButton 单选按钮 CheckBox 复选框 ToggleButton状态开关 checked 是否被选中 textOff 未选中时候显示的文字 textOn 选中时候显示的文字 监听:OncheckedChangeListener AnalogClock 时钟控件 继承与TextView 模拟时钟 不会显示秒数 钟表样式 DigitalClock 时钟控件 数字时钟 会显示秒数 文本样式 ImageView adjustViewBounds是否调整边界来保持长宽比 高级控件: AutoCompleteTextView 自动完成文本框 继承与Edittext 输入字符后 会显示一个下拉菜单 选择了某一个选项后,会回显在文本框上 completionHint 下拉菜单中的提示标题 completionThreshold 至少输入了几个字符后才会显示提示 dropDownHeight 下拉框的高度 dropDownHorizontalOffest 下拉菜单和文本框的水平偏移 默认是与文本框左对齐的 dropDownHorizontalOffest 下拉菜单和文本框的垂直偏移 默认是与文本框紧挨的 dropDownWidth 下拉框的宽度 popBackground 设置下拉菜单的背景 只要为AutoCompleteTextView设置一个Adapter Spinner:列表选择框 是一种弹出样式的下拉列表 供选择 继承与ViewGroup prompt 列表选项框的提示 entries 数组资源设置该下拉框 的列表 也可以自定义一个adpter 设置给Spinner DatePicker 日期选择器 继承与FrameLayout 可以通过添加 OnDateChangeListener监听实现日期选择 TimePicker 时间选择器 继承与FrameLayout 可以通过添加 OnTimerChangeListener监听实现时间选择 ProgressBar 进度条 风格: @android:style/Widght.Progress.Horizontal 水平进度条 @android:style/Widght.Progress.Inverse 旋转动画的进度条 不断跳跃 @android:style/Widght.Progress.Large 大进度条 @android:style/Widght.Progress.Large.Inverse 旋转动画的大进度条 不断跳跃 @android:style/Widght.Progress.Small 小进度条 @android:style/Widght.Progress.Small.Inverse 旋转动画的小进度条 不断跳跃
属性: max 进度条最大值 progress 已完成的进度值 progressDrawable 进度条轨道形式 可以自定义 progressBarStyle 默认进度条样式 progressBarStyleHorizontal 水平进度条 progressBarStyleLarge 大进度条 progressBarStyleSmall 小进度条
在Activity中可以通过设置 requestWindowFeature()方法来实现进度条 Window.FEATURE_INDETERMINATE_PROGRESS 窗口上不到进度显示的进度条 Window.FEATURE_PROGRESS 带进度的进度条 然后调用setProgressBarVisibility /seProgressBarIndeterminaterVisibility 来控制显示和隐藏 setProgrss(500) 设置进度
SeekBar 拖动条 用户可以通过拖动滑块的方式来表明完成的进度情况 通过拖动来标识数值 android:thumb 指定Drawable对象 可以自定义样式 通过绑定onSeekBarChangeListener的方式监听 可以用来设置音量 亮度 透明度等 比如在OnProgressChange回调方法里设置 imageView.setAlpha(progress)
RatingBAr 星级评分条 和SeekBar一样,都继承与AbsSeekBar 都允许拖动来更改进度 Rating 通过星星来表示进度 通过 OnRatingBarChangeListener监听设置情况 isIndicator 星级评分表是否允许改变 numStars 共有多少个星星 rating 默认展示几星 stepSize 每次至少改变几个星星样式
TabHost 选项卡 可以通过选项卡的使用来设置多个标签 每个标签就对应获得一个与外部容器大小一致的区域 可以在每个容器内设置组件样式 完成Tab样式 newTabSpec() 创建选项卡 addTab 添加选项卡 ScrollView 滚动视图 继承与FrameLayout 是为内部普通组件添加滚动属性的组件 只能包含一个子控件 添加垂直滚动 如果需要有水平滚动,可以用HorizontalScrollView来实现
ListView 垂直列表控件 1.使用LIstView控件 2.将Activity继承ListActivity 通过内容适配器 Adapter的方式来进行赋值 choiceMode ListView的选择行为 diver 分隔条 diverHeight 分隔条的高度 entrices 默认样式可以直接指定一个数组资源 footerDividersEnabled 设置为false时 就不在foot View前绘制分隔条 headerDividersEnabled 设置为false时 就不在header View前绘制分隔条
ExpandableListView 可展开的列表组件 继承与ListView 可以对列表进行分组 每组可以包含多条数据 用法与ListView一直 适配器要指定ExpandableAdapter childDivider 子列表的分隔条 childIndicator 子列表边的Drawable对象 groupIndicator 组列表边的Drawable对象
GridView 网格视图 和ListView相同的是 都继承与AbsListView 可以在两个方向上分布 适配器Adapter 既可以SimpleAdapter 也可以BaseAdapter columnWidth 列的宽度 gravity 对齐方式 horizontalSpacing 水平间距 numColumns 列数 stretchMode 拉伸模式 verticalSpacing 列表的垂直间距
Gallery 画廊视图 和Spinner同样的父类 AbsSpinner 是一个列表框 Spinner是垂直的列表选择框 用户选择 Gallery是水平的列表选项框 通过拖动来查看下一项数据 设置Adapter AlertDialog 对话框 1.调用AlertDialog .Builder对象 创建器 2.调用AlertDialog.Builder的方法 设置图标 内容 标题等对话框内容 3.调用AlertDialog.Builder的create方法创建对话框 4.调用AlertDialog的show 方法来显示 setIcon 设置图标 setTitle 设置标题 setMessage 设置对话内容 setPositiveButton 设置确认 按钮 和按钮的监听器 setNegativeButton 设置取消 按钮和监听器 然后调用create方法 和 show方法 还可以创建列表对话框 为对话框设置列表 builder对象的serItems方法 单选列表的对话框 builder的setSingleChoiceItems方法 多选列表对话框 builder的setMultiChoiceItems方法 自定义对话框: 可以对builder方法设置adapter对象
ProgressDialog 进度对话框 setIndeteminate 是否显示对话框的进度条进度值 setMax 进度条最大值 setMessage 对话消息 setProgress 进度值 setProgressStyle 进度条风格 DatePickerDialog 日期选择对话框 TimerPickerDialog 时间选择对话框
PopWindow 对话框风格的窗口 1.调用PopWindow的构造器创建PopWindow对象 2.调用showAsDropDown方法 将view组件的下拉菜单显示出来 调用showAtLocation 显示在指定的位置 Toast 提示信息框 用来显示简单的提示信息 也可以自定义setView 来显示内容 Notification 状态栏消息 1.调用getSystemSerVice(NOTIFICATION_SERVICE) 获取NotificationManager服务 2.构建Notification对象 3.对Notification设置属性 4.通过NotificationManager发动Notification
菜单 选项菜单子菜单SubMenu 包含两个子类: SubMenu 普通菜单 可以包含N个子菜单项 MenuItem ContextMenu 子菜单 可以包含N个子菜单项 MenuItem add 方法 添加菜单项 addSubMenu 添加子菜单
重选菜单项or 单选菜单 通过设置某选中状态 checked true 其他设为false ↑↑↑↑↑ 1.View 与ViewGroup功能 用法 2.UI组件 高级UI组件 3.对话框 AlertDialog PopWindow DatePickerDialog TimerPickerDialog 4.Toast 5.菜单
end...
事件 事件处理:1.基于回调的事件 2.基于监听器的事件 监听事件处理: Event Source 事件源 各个组件 按钮 窗口 菜单 Event 事件 用户操作 Event Listener 事件监听器 监听Event Source的事件 做出响应 用户点击了之后 这个点击动作就会做出一个事件 事件通过触发事件监听器 对事件进行处理 Android 的事件处理机制:一种委派式的事件处理方式 1.组件将事件处理委托给事件监听器对象 2.事件监听器通过事件处理器做出响应 事件方法 : 事件处理器 Event Handler
事件 事件监听器 事件源 事件 事件监听器 回调机制: 事件源和事件监听器是统一的 用户响应了某个事件 组件自己的方法 会处理这个事件 View : onKeyDown 按下按钮时回调 onKeyLongPress 用户长按时候回调 onKeyShortcut 快捷键事件触发回调 onKeyUp 松开时候回调 onTouchEvent 触摸了屏幕事件 onTrackballEvent 轨迹球屏事件触发回调 系统的回调事件一般都会有一个boolean类型的返回值 true 代表已完全处理事件 不会传播 false 代表未完全处理事件 会传播 系统设置事件: Configuration类 手机的配置信息类 重写OnConfigurationChanged可以响应系统设置更改 比如字体 横竖屏等
Handler消息机制: 用于处理多线程问题 安卓不允许新线程 改变界面的组件 和属性 就需要借助Handler 1.在新线程类发送消息 2.在主线程接收 处理消息 handlerMessage 处理消息 hasMessages 检查队列中是否包含what属性为指定值 / obtainMessage 获取消息 sendEmptyMessage 发送空消息 sendEmptyMessageDelayed 延时指定秒数后发送空消息 sendMessage 立即发送消息 sendMessageDelayed 延时指定秒后发送消息
比如 我们需要对界面的某个空间 每间隔1s修改界面显示 就可以使用定时器 Handler来实现 通过定时器触发Handler 在Handler的处理类方法 来更替我们的界面组件显示
Activity: 自定义Activity需要继承 Activity基类(需要是Activity类的子类) Activity是继承了 Context ContextWapper ContextThemeWapper类的 四大组件都需要显示的进行配置 Intent是各组件之间通信的重要方式 结束界面: 1.finish() 2.finish(int requestCode) 结束以startActivityForResult启动的Activity
使用Bundle在Activity之间传递数据 Intent提供了重载方法来携参: putExtras(Bundle data) Bundle 是一个简答你的数据携带包 有多个方法 putXxx(String key, Xxx data) 可以是Int Long String等 putSerialIzable(String key, SerialIzable data) Bundle也可以放入可序列化的对象 取参数: getXxx(String key) 来取参 getSerialIzable(String key, SerialIzable data) 取出一个可序列化的对象
Activity的生命周期: 1.活动状态 位于前台 用户可以交互 2.暂停状态 位于前台 可见不可交互 3.停止状态 不可见 失去交互 4.销毁状态 结束 onCreate() 创建Activity回调 onStart() 启动Activity回调 onReStart() 重新启动Activity回调 onReSume() 恢复Activity回调 onStop() 停止Activity onDestroy() 销毁时
Intent 和 IntentFilter通信 Action 完成的抽象动作 Category 附加信息 intent-filter 配置 可以通过minifest配置action 然后通过调用 Intent intent = new Intent(); intent.setAction(ActionCateAttr.CRAZYIT_ACTION); intent.setCategory(ActionCateAttr.CRAZYIT_CATEGORY); startActivity(intent);
系统级的Action 1.ACTION_MAIN 程序入口 2.ACTION_VIEW 显示指定数据 ... ... Category: ... Extra属性: 在多个Action之间进行数据交换 应该是一个Bundle对象 ↑↑↑↑↑ Intent
资源: 布局文件: xml java文件: 四大组件 资源文件:xml 图片 音频 样式 等 assets资源: 无法直接访问的原生资源 分为两种: 1.无法直接访问的原生资源 assets 2.资源清单类文件 res目录 res: anim:补间动画的xml color:颜色列表xml drawable:位图文件/drawable对象xml layout 布局文件 menu 菜单资源 raw 任意类型的原生文件 values 简单值的xml文件 字符串 整形 颜色 数组等 如 string color array style dimen xml 任意的xml文件
Array资源 Drawable资源: png jpg gif .9.png StateListDrawable资源: 组织多个drawable对象 item属性为: state_checkable 是否处于可选中状态 state_checked 是否处于选中状态 state_enabled 是否处于 可用状态 state_first 是否处于 开始状态 state_focused 是否处于 已经获取到焦点的状态 state_last 是否处于 结束状态 state_middle 是否处于 中间状态 state_pressed 是否处于 已被 按下的状态 state_slected 是否处于 已被选中的状态 state_window_focused 是否处于 窗口已经获得焦点的状态
ShapeDrawable资源: 定义矩形 圆形 线条等样式 <shape shape="rectangle" "oval" "line" "ring" 常规矩形/圆形/线/环形
ClipDrawable资源: 从其他位图截取一个图片“片段”
AnimationDrawable资源: 动画资源 逐帧动画 补间动画 使用<set 定义 alpha 透明度 scale 缩放 translate 位移变换 rotate 旋转
原始XML资源: 如配置信息 应用数据资源保存 保存在res/xml目录 布局资源:res/layout 菜单资源 Menu res/menu 子元素: <item <group ..... .....
样式和主题资源:
Android绘图: Canvas Paint 继承与View组件 重写它的onDraw(Canvas canvas)方法 其中Canvas代表了依附与某一个View的画布 drawArc() 绘制弧 drawBitmap 从指定点的位置上挖取的一块/指定点绘制位图 drawCircle 指定点绘制一个园 drawLine 绘制一条线 drawLines 绘制多条线 drawOval 绘制椭圆 drawPath 沿着PAth绘制任意形状 drawPoint 绘制一个点 drawPoints 绘制多个点 drawRect 绘制一个矩形 drawRoundRect 绘制圆角矩形 drawText 绘制字符串 drawTextOnPath 沿着Path路径绘制字符串 clipRect 剪切一个矩形 clipRegion 剪切指定区域
Canvas方法: rotate 对Canvas旋转 scale 对Canvas缩放 translate(float dx ,float dy) 移动Canvas dx为负数向左 dy为负数向上 Paint代表了Canvas的画笔 可以设置绘制风格 画笔颜色 画笔粗细 填充风格等等 setARGB 设置画笔颜色 setAlpha 设置透明度 setAntiAlias 是否抗锯齿 setColor 设置颜色 setPathEffect 绘制路径时候的路径效果 setShader 画笔的填充效果 setShadowLayer 阴影 setStrokeWidth 画笔笔触宽度 setStrokeJoin 画笔连接处的转弯风格 setStyle Paint的填充风格 setTextAlign 绘制文本时候的文字对其方式 setTextSize 绘制文本时候的文字大小
Matrix 矩形工具类
来源:https://www./content-4-761751.html
|