Android 教程

一、context

  1. 它描述的是一个应用程序环境的信息,即上下文。
  2. 该类是一个抽象类,android提供了该类的具体实现类Contextlml类。
  3. 通过它我们可以获取应用程序的资源和类。
  4. Activity、Service、Application都是Context的子类
  5. 一个应用中Context的数量等于Activity的个数 + Service的个数 + 1,这个1为Application。

二、log

android.util.Log常用的方法有以下5个:Log.v() Log.d() Log.i() Log.w() 以及 Log.e() 。根据首字母对应VERBOSE,DEBUG,INFO, WARN,ERROR。

  1. Log.v 的调试颜色为黑色的,任何消息都会输出,这里的v代表verbose啰嗦的意思,平时使用就是Log.v("","");

  2. Log.d的输出颜色是蓝色的,仅输出debug调试的意思,但他会输出上层的信息,过滤起来可以通过DDMS的Logcat标签来选择;

  3. Log.i的输出为绿色,一般提示性的消息information,它不会输出Log.v和Log.d的信息,但会显示i、w和e的信息;

  4. Log.w的意思为橙色,可以看作为warning警告,一般需要我们注意优化Android代码,同时选择它后还会输出Log.e的信息;

  5. Log.e为红色,可以想到error错误,这里仅显示红色的错误信息,这些错误就需要我们认真的分析,查看栈的信息了;

ViewTreeObserver

注册一个观察者来监听视图树,当视图树的布局、视图树的焦点、视图树将要绘制、视图树滚动等发生改变时,ViewTreeObserver都会收到通知,ViewTreeObserver不能被实例化,可以调用View.getViewTreeObserver()来获得。

常用内部类:

  1. ViewTreeObserver.OnPreDrawListener :当视图树将要被绘制时,会调用的接口
  2. ViewTreeObserver.OnGlobalLayoutListener: 当视图树的布局发生改变或者View在视图树的可见状态发生改变时会调用的接口
  3. ViewTreeObserver.OnGlobalFocusChangeListener:当一个视图树的焦点状态改变时,会调用的接口
  4. ViewTreeObserver.OnScrollChangedListener:当视图树的一些组件发生滚动时会调用的接口
  5. ViewTreeObserver.OnTouchModeChangeListener:当视图树的触摸模式发生改变时,会调用的接口

RectF、Rect和PointF、Point类的区别

1、Android.graphics.Rect类,初始化为:
public Rect(int left, int top, int right, int bottom) {
this.left = left;
this.top = top;
this.right = right;
this.bottom = bottom;
}


2、Android.graphics.RectF类,初始化为:  
public RectF(float left, float top, float right, float bottom) {
this.left = left;
this.top = top;
this.right = right;
this.bottom = bottom;
}

3、Android.graphics.Point类,源码初始化:
public Point(int x, int y) {
this.x = x;
this.y = y;
}

4、Android.graphics.PointF类,源码初始化为:
public PointF(float x, float y) {
this.x = x;
this.y = y;
}

ConstraintLayout 和 RelativeLayout

  • RelativeLayout:相对布局,控件的位置是按照相对位置来计算的,控件之间的位置具有相对对应的关系,是最灵活最常用的布局。
  • ConstraintLayout:约束布局,控件之间、控件与父布局之间具有约束关系,控件的位置是按照约束来计算的,使用ConstraintLayout布局时,也可以添加引导线(Guideline)来辅助布局,所有的布局可以在如图所示的界面上通过拖动和调整来完成,相对于RelativeLayout这一点要方便许多。

评论

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×