Android基本知识(2)

三大特性:①封装(隐藏对象的属性和实现细节,仅对外提供公共访问方式,将变量隔离便于使用,提高代码的服用小和安全性);②继承(提高代码的复用性,继承是多态的前提);③多态(父类或接口定义的引用变量可以指向子类或具体实现类的形象,提高了程序的拓展性)。

五大原则:单一职责、开放封闭、里氏替换、依赖倒置、接口分离。

数据类型:byte 1个字符,short 、char2 个字符,int 、float 4个字符,long 、double 8个字符。

String不可变原因:字符串常量池的需要;运行String对象缓存HashCode,提高效率;多线程安全。

String 转integer的方法和原理

1、Integer.parseInt(String str)调用Integer内部的;

2、Integer.parseInt(String s, int radix)parseInt内部首先判断字符串是否包含符号(-或者+),则对相应的negative和limit进行赋值,然后再循环字符串,对单个char进行数值计算

3、Character.digit(char ch, int radix) 返回指定基数中字符表示的数值。函数肯定进入到0-9字符的判断(相对于string转换到int),否则会抛出异常,数字就是如上面进行拼接然后生成的int类型数值。

限定参数类型的上界:参数类型必须是T或T的子类型。

<? super T> 限定参数类型的下界:参数类型必须是T或T的超类型。

equal:存储空间的值是否相同,字符串内容比较,值是否相同。

==;是否为同一内存空间,内存空间是否相同,引用是否相同

 

onCreate() : 完成Fragment的初始化

onCreateView() : 加载Fragment布局,绑定布局文件

onActivityCreated() : 表名与Fragment绑定的Activity已经执行完成了onCreate,可以与Activity进行交互操作。

onStart() : Fragment变为可见状态

onResume() : Fragment变为可交互状态

onPause(): Fragment变为不可交互状态(不代表不可见)

onSaveInstanceState():保存当前Fragment的状态。记录一些数据,比如EditText键入的文本,即使Fragment被回收又重新创建,一样能恢复EditText之前键入的文本。

onStop(): Fragment变为不可见状态

onDestroyView() : 销毁Fragment的有关视图,但并未和Activity解绑,可以通过onCreateView()重新创建视图。Fragment销毁时或者ViewPager+Fragment情况下会调用

onDestroy() : 销毁Fragment时调用

onDetach() : 解除和Activity的绑定。Fragmen销毁最后一步。

View子类

        时钟(AnalogClock、DigitalClock、Chronometer)

                   第一第二个为模拟时钟和数字时钟,第三个为计时器。

    Chronometer的用法:

          setBase(long base):设置计时器的起始时间

         setFormat(String format):设置显示时间的格式

         start():开始计时

          stop():停止计时

         setOnChronometerTickListener(Chronometer.OnChronometerTickListener):为计时器绑定时间监听,当计时器改变时触发该监听器。

    获取系统时间的种类和区别(SystemClock):

     1. 、System.currentTimeMillis(): 该时间是基于世界时间的,它返回的是从January 1, 1970 00:00:00 UTC到现在时间已经逝去了多多少millisecond,当我设置Android手机的系统时间时,会应该影响该值.

   2、uptimeMillis(): 它表示的是手机从启动到现在的运行时间,且不包括系统sleep(CPU关闭)的时间,很多系统的内部时间都是基于此,比如Thread.sleep(millls), Object.wait(millis), and System.nanoTime()

   3、elapsedRealtime(): 它表示的是手机从启动到现在的运行时间,且包括系统sleep(CPU关闭)的时间。

图像视图(ImageView)

使用之前最好先如下操作:

BitmapDrawable bitmapDrawable = (BitmapDrawable)image.getDrawable();

 

If(!bitmapDrawable.getBitmap().isRecycled())

{

              bitmapDrawable.getBitmap().recycle();

}

然后再设置image的值。

通过image可以得到Drawable对象,然后可以得到Bitmap对象,我们的主要操作都是针对Bitmap进行的,image只是在手机上显示的区域,而Bitmap则是你真实的图片,大小与显示的区域有不同。比如我们点击图片上某一个点,这个点的坐标是相对于image的坐标,但是如果我们需要对真实的图片进行操作的话,则需要将这个点的坐标进行相应的缩放倍数的增减。

fragment之间传递数据的方式

1.在相应的fragment中编写方法,在需要回调的fragment里获取对应的Fragment实例,调用相应的方法;

2.采用接口回调的方式进行数据传递;

  a)在Fragment1中创建一个接口及接口对应的set方法;
  b)在Fragment1中调用接口的方法;
  c)在Fragment2中实现该接口;

3.利用第三方开源框架EventBus

service和activity要进行数据交互可以

通过bindService启动服务,

  可以在ServiceConnection的onServiceConnected中获取到Service的实例,这样就可以调用service的方法,如果service想调用activity的方法,可以在service中定义接口类及相应的set方法,在activity中实现相应的接口,这样service就可以回调接口;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值