青训营笔记
这是我参与「第四届青训营 」笔记创作活动的第18天
常用UI组件大多由adroid framework中的android.widget这个package提供
常规UI组件的学习可以从两个方面入手:
- 公共的通用属性,如id,height,width等,如文本框,按钮都含有这些公共属性
- 特定的属性和方法,比如settext()是textview所特有的,而setimagedrawable是imageview所特有的
- 没用的知识增加了:手机屏幕的原点在屏幕左上角,跟EasyX一样是左上到右下展开的和普通X-Y坐标轴镜像的坐标轴 常规UI组件大多是单个view,高级UI组件大多是viewGroup,可以实现嵌套,有更复杂的功能
常用布局:
linearlayout:单一方向默认的线性布局。
其最重要的属性是orientation,即组件排列方向 在布局文件中先定义linearlayout的布局方式,例如宽度,排列方式等,在后续采用该布局方式的UI则会默认按照先前给定的设置来排列。 weight(高权重)的意义:当某个控件的weight最高时,系统会先展示其余的控件,然后剩余的控件 都全部划给weight权重高的控件。
relativelayout:相对布局。
其含有相对父容器和相对兄弟组件两种布局方式 可以相互嵌套
framelayout:层级布局
各组件、界面之间可以相互覆盖 其特定属性有foreground(前景图像)和foregroundgravity(前景图像gravity)
constraintlayout:相对位置的对齐布局
可以和父容器或者兄弟组件进行左对齐、右对齐等布局
交互:
findviewById首先将对象实例化,其次才是对其执行操作,可以对其进行settext修改、或者是setOnClickListener设置监听器等操作,监听器在平时不执行操作,只有当其监听的控件发生了变化,监听器才会执行对应的操作,一般有点击监听器、长按监听器、硬件按键的监听器、任何触摸事件的监听器以及操作发生改变(比如手指离开屏幕)的监听器
帧动画:
基本实现就是将多个图片在一个位置按照一定的播放时长和切换时长来实现,一般用imageview等其中android:duration属性决定了播放时长,android:oneshot的true or false决定了是单次播放还是多次播放。(类似GIF)
补间动画:
通过确定开始和结束时的视图状态,中间的过程由系统的差值器自动补全,一般有imageview,textview,一般转场动画等会使用,但其限制了某些属性如宽度高度。powerpoint里面的许多切换动画,过渡动画就是补间动画。一般设置其属性如:透明度,旋转角度,平移角度,缩放等。
最优解:属性动画
其在Java中而非XML中定义,也不局限于view。其原理是在一定时间内不断地对对象的属性改变而实现的动画效果。如设定其X属性从1到0.5,其Y属性从1到0.5,实现一个翻转效果