分享

Android

 印度阿三17 2020-11-24

一:自定义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

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多