Fragment

  • 用途:在一个Activity里切换界面,切换界面时只切换Fragment里面的内容

  • 生命周期方法跟Activity一致,可以理解把其为就是一个Activity

  • 定义布局文件作为Fragment的显示内容

      //此方法返回的View就会被显示在Fragment上@Overridepublic View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) {// TODO Auto-generated method stub//用布局文件填充成一个View对象,返回出去,那么就显示在Fragment上了View v = inflater.inflate(R.layout.fragment01, null);return v;     }
    
  • 把Fragment显示至指定ViewGroup中

      //把fragment显示至界面//new出fragment对象Fragment01 fg = new Fragment01();FragmentManager fm = getFragmentManager();//开启事务FragmentTransaction ft = fm.beginTransaction();//把fragment对象显示到指定资源id的组件里面ft.replace(R.id.fl, fg);ft.commit();
    

生命周期

  • fragment切换时旧fragment对象会销毁,新的fragment对象会被创建

低版本兼容

  • 在support-v4.jar包中有相关api,也就是说fragment可以在低版本模拟器运行

动画

帧动画

一张张图片不断的切换,形成动画效果

  • 在drawable目录下定义xml文件,子节点为animation-list,在这里定义要显示的图片和每张图片的显示时长

      <animation-list xmlns:android="http://schemas.android.com/apk/res/android" android:oneshot="false"><item android:drawable="@drawable/g1" android:duration="200" /><item android:drawable="@drawable/g2" android:duration="200" /><item android:drawable="@drawable/g3" android:duration="200" /></animation-list>
    
  • 在屏幕上播放帧动画

      ImageView iv = (ImageView) findViewById(R.id.iv);//把动画文件设置为imageView的背景iv.setBackgroundResource(R.drawable.animations);AnimationDrawable ad = (AnimationDrawable) iv.getBackground();//播放动画        ad.start();
    

补间动画

  • 原形态变成新形态时为了过渡变形过程,生成的动画就叫补间动画
  • 位移、旋转、缩放、透明
位移:
  • 参数10指的是X的起点坐标,但不是指屏幕x坐标为10的位置,而是imageview的 真实X + 10

  • 参数150指的是X的终点坐标,它的值是imageview的 真实X + 150

      //创建为位移动画对象,设置动画的初始位置和结束位置TranslateAnimation ta = new TranslateAnimation(10, 150, 20, 140);
    
  • x坐标的起点位置,如果相对于自己,传0.5f,那么起点坐标就是 真实X + 0.5 * iv宽度

  • x坐标的终点位置,如果传入2,那么终点坐标就是 真实X + 2 * iv的宽度

  • y坐标的起点位置,如果传入0.5f,那么起点坐标就是 真实Y + 0.5 * iv高度

  • y坐标的终点位置,如果传入2,那么终点坐标就是 真实Y + 2 * iv高度

      TranslateAnimation ta = new TranslateAnimation(Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 2, Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 2);
    
  • 动画播放相关的设置

      //设置动画持续时间ta.setDuration(2000);//动画重复播放的次数ta.setRepeatCount(1);//动画重复播放的模式ta.setRepeatMode(Animation.REVERSE);//动画播放完毕后,组件停留在动画结束的位置上ta.setFillAfter(true);//播放动画iv.startAnimation(ta);
    
缩放:
  • 参数0.1f表示动画的起始宽度是真实宽度的0.1倍

  • 参数4表示动画的结束宽度是真实宽度的4倍

  • 缩放的中心点在iv左上角

      ScaleAnimation sa = new ScaleAnimation(0.1f, 4, 0.1f, 4);
    
  • 参数0.1f和4意义与上面相同

  • 改变缩放的中心点:传入的两个0.5f,类型都是相对于自己,这两个参数改变了缩放的中心点

  • 中心点x坐标 = 真实X + 0.5 * iv宽度

  • 中心点Y坐标 = 真实Y + 0.5 * iv高度

    ScaleAnimation sa = new ScaleAnimation(0.1f, 4, 0.1f, 4, Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f);

透明:
  • 0为完全透明,1为完全不透明

      AlphaAnimation aa = new AlphaAnimation(0, 0.5f);
    
旋转:
  • 20表示动画开始时的iv的角度

  • 360表示动画结束时iv的角度

  • 默认旋转的圆心在iv左上角

      RotateAnimation ra = new RotateAnimation(20, 360);
    
  • 20,360的意义和上面一样

  • 指定圆心坐标,相对于自己,值传入0.5,那么圆心的x坐标:真实X + iv宽度 * 0.5

  • 圆心的Y坐标:真实Y + iv高度 * 0.5

      RotateAnimation ra = new RotateAnimation(20, 360, Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f);
    
所有动画一起飞
 //创建动画集合AnimationSet set = new AnimationSet(false);//往集合中添加动画set.addAnimation(aa);set.addAnimation(sa);set.addAnimation(ra);iv.startAnimation(set);

属性动画

  • 补间动画,只是一个动画效果,组件其实还在原来的位置上,xy没有改变

位移:

  • 第一个参数target指定要显示动画的组件

  • 第二个参数propertyName指定要改变组件的哪个属性

  • 第三个参数values是可变参数,就是赋予属性的新的值

  • 传入0,代表x起始坐标:当前x + 0

  • 传入100,代表x终点坐标:当前x + 100

      //具有get、set方法的成员变量就称为属性ObjectAnimator oa = ObjectAnimator.ofFloat(bt, "translationX", 0, 100) ;
    

缩放:

  • 第三个参数指定缩放的比例

  • 0.1是从原本高度的十分之一开始

  • 2是到原本高度的2倍结束

      ObjectAnimator oa = ObjectAnimator.ofFloat(bt, "scaleY", 0.1f, 2);
    

透明:

  • 透明度,0是完全透明,1是完全不透明

      ObjectAnimator oa = ObjectAnimator.ofFloat(bt, "alpha", 0.1f, 1);
    

旋转

  • rotation指定是顺时针旋转

  • 20是起始角度

  • 270是结束角度

      ObjectAnimator oa = ObjectAnimator.ofFloat(bt, "rotation", 20, 270);
    
  • 属性指定为rotationX是竖直翻转

  • 属性指定为rotationY是水平翻转

      ObjectAnimator oa = ObjectAnimator.ofFloat(bt, "rotationY", 20, 180);
    

可变参数

  • 第三个参数可变参数可以传入多个参数,可以实现往回位移(旋转、缩放、透明)

      ObjectAnimator oa = ObjectAnimator.ofFloat(bt, "translationX", 0, 70, 30, 100) ;
    

所有动画一起飞

 //创建动画师集合AnimatorSet set = new AnimatorSet();//设置要播放动画的组件set.setTarget(bt);//所有动画有先后顺序的播放//set.playSequentially(oa, oa2, oa3, oa4);//所有动画一起播放set.playTogether(oa, oa2, oa3, oa4);set.start();

Android入门笔记11相关推荐

  1. Android入门笔记之更改手机屏幕方向

    Android入门笔记之更改手机屏幕方向 <1>简介 通过一个按钮组来改变横屏竖屏显示. <2>关键步骤 主要通过android.app.activity.getRequest ...

  2. 云炬Android开发笔记 11主界面-商品分类开发(多布局Section RecyclerView)

    阅读目录 1. 分类页面结构解析和开发 1.1 布局的创建 1.2 布局的逻辑组合 2. 分类左侧列表数据解析与UI呈现 2.1 数据的转换 2.2[完善list列表逻辑] 3.多布局Section列 ...

  3. Android学习笔记(11):线性布局LinearLayout

    线性布局LinearLayout是指在横向或是竖向一个接一个地排列.当排列的组件超出屏幕后,超出的组件将不会再显示出来. LinearLayout支持的XML属性和相应方法如表所看到的: Attrib ...

  4. 【机器学习入门笔记11:numpy模块实现矩阵的增删改查】20190217

    2019-02-17  by 崔斐然 除了TensorFlow设置的矩阵之外,我们还可以通过numpy模块使用矩阵. 我们先在anaconda中参考笔记1中的配置方法安装numpy. 下面我们通过nu ...

  5. Android入门(11)| 全局广播与本地广播

    文章目录 广播概念 接收广播 动态注册 实例 静态注册 实例 发送广播 发送标准广播 广播的跨进程特性 发送有序广播 本地广播 广播概念 Android 中的每个应用程序都可以对自己感兴趣的广播进行注 ...

  6. Ariduino入门笔记——11. Arduino 默认函数(USB设备控制)

    文章目录 Keyboard 开启键盘模拟 Keyboard.begin() 关闭键盘模拟 Keyboard.end() 长摁键盘 Keyboard.press() 敲击键盘 Keyboard.prin ...

  7. Android学习笔记26:图片切换控件ImageSwitcher的使用

    在Windows操作系统中,要查看多张图片,可以通过使用"Windows照片查看器"在"上一张"和"下一张"之间切换,进行多张图片的浏览. ...

  8. Android Studio 基础入门笔记

    Android Studio 基础入门笔记 Android Studio 基础入门笔记 为什么选择使用 Android Studio 而不是EclipseADT 安卓配置JDK AS如何更新 常规的 ...

  9. 11岁过python1级_11岁表弟写的Python零基础入门笔记!

    一.Python输入与输出输出:使用print()函数. print()函数的基本语法格式如下:print(输出内容). 输出内容可以是数字和字符串(字符串需要用引号括起来),也可以是包含运算符的表达 ...

  10. Android 插件化原理入门笔记

    Android开发笔记 onGithub 笔记,参考7.2中所列参考文章所写,DEMO地址在PluginTestDemoApplication 1.综述 2015年是Android插件化技术突飞猛进的 ...

最新文章

  1. python脚本编写_【PyQGIS】编写用于处理框架(QGIS3)的Python脚本
  2. 2021-12-09把文件夹1中的与文件夹2里同名图片删除或者保存至另一个文件夹
  3. P1435 回文字串(DP)
  4. NVM安装与使用(实现Node多版本控制)
  5. thinkphp htmlspecialchars_decode
  6. B+树(加强版多路平衡查找树)
  7. 人脸识别dlib库 记录
  8. react使用antd实现日期与时间的不可选定
  9. 字节跳动的一面内容记录
  10. 【Java程序设计】流程控制
  11. 统计学习方法读书笔记14-逻辑斯蒂回归代码实现与最大熵代码实现
  12. 怎么保护自己的音乐作品不被盗用,用FL制作防盗水印片段。
  13. drupal插入css,drupal8 自定义主题开发——导入自定义css和js
  14. 塔城地区谷歌高清卫星地图下载
  15. 电商订单后台管理系统
  16. 2021年深圳盐田区绿色建筑与装配式建筑发展资金申报资助及条件,补贴200万
  17. 2014最火的10分钟6块腹肌动图gif教程,男人不能没有腹肌!
  18. 通过putty取linux文件,putty对Linux上传下载文件或文件夹
  19. 杰理之上下文件夹播放上文件夹从最后一首播放【篇】
  20. java泛型 方法返回值带有泛型 <T>

热门文章

  1. CISCO寄存器配置与说明
  2. 常见URL字符及URL编码值
  3. string类和标准模板库
  4. Practical Lessons from Predicting Clicks on Ads at Facebook
  5. Android studio 的那些坑
  6. CentOS安装Nginx 报错“configure: error: the HTTP rewrite module requires the PCRE library”解决办法...
  7. 第三季-第24课-TCP通讯程序设计
  8. 【good】在CentOS 6.x上安装GlusterFS
  9. 使用POI导出Excel公用类方法 v1.1
  10. 【iOS】编译静态库