对于安卓这两个属性一直没有分清,和当初学C语言a++,++a的区别一样苦恼。现在记录一下自己的理解。...定义: gravity的中文意思就是”重心“,就是表示view横向和纵向的停靠位置 (1).android:gravity:是对view控件本身来说的,是用来设置view本身的内容应该显示在view的什么位置...也可以用来设置布局中的控件位置 (2).android:layout_gravity:是相对于包含改元素的父元素来说的,设置该元素在父元素的什么位置; 演示: 最初的样式: ?
比如,一个按钮做平移的动画,虽然按钮的确做了平移,但按钮可点击的区域并没随着平移而改变,还是在原来的位置。而属性动画则可以改变真正的属性,从而实现按钮平移时点击区域也跟着平移。... 标签与对应的ValueAnimator类提供了属性动画的核心功能,包括计算动画值、动画时间细节、是否重复等。...标签与标签不同的是,可以直接指定动画的目标对象的属性。...:旋转的轴点和缩放的基准点,默认是View的中心点 scaleX 和 scaleY:基于pivotX和pivotY的缩放,1表示无缩放,小于1表示收缩,大于1则放大 rotation、rotationX...标签对应于AnimatorSet类,可以将多个动画组合成一个动画集,如上面提到的在缩放宽度的同时做垂直移动,可以将一个缩放宽度的动画和一个垂直移动的动画组合在一起。
话不多说直接上图 [动画.gif] 从图中可知,分为上下两部分,上部分是传统春联和福字,代表对大家的新年祝福,下部分是主要功能模块,包含红包金额、新年幸运签和是与不是。...安卓手机的小伙伴可以下载安装包 体验一把,我是停不下来!...vibrate(pattern, -1) Android动画 这里我们使用的是View动画给Dialog添加入场和退场动画。 *View动画有如平移、缩放、旋转和透明度,这里使用了缩放。...pivotX 横向动画起始位置,相对于屏幕的百分比,50%表示动画从屏幕中间开始 pivotY 纵向动画起始位置,相对于屏幕的百分比,50%表示动画从屏幕中间开始 fromXScale 横向动画开始前的缩放...纵向动画最终缩放的倍数,1.0为正常大小,大于1.0放大 有了以上说明接下来的入场动画,和出场动画就更方便理解 中心位置从零到一进行缩放。
2️⃣ 导入要查看的jar包 将jar包拖到app-libs下,点击Refactor。 3️⃣ 添加jar包到库中去 此时的jar包还不能查看,需将jar包添加到库中去进行编译,才可进行查看。...4️⃣ 查看jar包 双击jar包中的脚本即可。 AndroidStudio查看 arr 包内容 1️⃣ 将你的arr包拷到libs下 方法跟查看jar包相同。...若你不习惯这样查看arr包中的jar包,可将jar包解压出来,按照 一 的方法查看。...arr和jar的区别 jar: 只包含了class文件与清单文件 ,不包含资源文件,如图片等所有res中的文件。...我们只用这个项目的查看日志功能,因此无需做其他操作 2、查看APK日志 按如下图片所示操作,查看APK的运行Log。
话不多说直接上图 image.png 从图中可知,分为上下两部分,上部分是传统春联和福字,代表对大家的新年祝福,下部分是主要功能模块,包含红包金额、新年幸运签和是与不是。...安卓手机的小伙伴可以下载安装包 体验一把,我是停不下来!...vibrate(pattern, -1) Android动画 这里我们使用的是View动画给Dialog添加入场和退场动画。 *View动画有如平移、缩放、旋转和透明度,这里使用了缩放。...pivotX 横向动画起始位置,相对于屏幕的百分比,50%表示动画从屏幕中间开始 pivotY 纵向动画起始位置,相对于屏幕的百分比,50%表示动画从屏幕中间开始 fromXScale 横向动画开始前的缩放...纵向动画最终缩放的倍数,1.0为正常大小,大于1.0放大 有了以上说明接下来的入场动画,和出场动画就更方便理解 中心位置从零到一进行缩放。
了解了上面矩阵和图型变换的关系之后,我们来步入正题,看一看安卓中的矩阵和图形变换的关系。...安卓中矩阵和图形变换的关系 其实在安卓中矩阵和图形变换的关系和上面讲到的是一样的,只不过设计者比较聪明,采用了齐次坐标。 那么你肯定会问: 什么是齐次坐标系?...所以在安卓中,用Matrix进行过图像处理,是一个3 x 3的矩阵,如图: ?...Scale (缩放) 如果图像在x轴和y轴方向分别放大k1和k2倍的话,那么图像中的所有点的x坐标和y坐标均会分别放大k1和k2倍: ? 用矩阵表示就是: ?...到这里我们对安卓中Matrix和图形变换关系就应该有了一定的了解了。 理论与实践相结合 Translate (平移) 如图:将图片从原点水平移动100,垂直移动100. ?
S型 我这里采用的是三阶贝塞尔曲线和PathMeasure来完成动画运动路径的封装 每个子view动画执行完后 是移除添加新的view进来 还是回收重新利 3、用 本案例是直接移除再添加新的(回收重新利用还没来得及去考虑该怎么写...) 4、动画是循环不停的播放 我采用的是RxJava timer()操作符 不断的发送随机延迟消息去通知动画的执行 5、最后就剩下一些停止动画操作的开关设定 实现步骤 1、一些基本的初始化工作 public...height = SizeUtils.dp2px(context, 130); //用于从PathMeasure 中不断的取出 曲线的路径值 pos =...把底部的图片显示更新 tempImageView.setBackgroundResource(browseEntity.drawableId); //动画执行完执行平移动画...(); } //通过PathMeasure 和ValueAnimator结合 在不同的阶段取出运动路径的x,y值 final PathMeasure pathMeasure
作者 大家好,我叫小鑫,也可以叫我蜡笔小鑫; 本人17年毕业于中山大学,于2018年7月加入37手游安卓团队,曾经就职于久邦数码担任安卓开发工程师; 目前是37手游安卓团队的海外负责人,负责相关业务开发...(params); 通过更新LayoutParams调整子View在父View中的位置就能实现 具体代码如下: /** * @author zhuxiaoxin * 可拖拽贴边的view */ public...; /** * view的宽度|高度 */ int mWidth, mHeight; /** * 是否在拖拽过程中 */ boolean...Activity中使用 SqAddFloatView(this, R.mipmap.ic_launcher).show(this) 3、方案三:WindowManager+应用内层级实现 WindowManger中的层级有如下两个...int mScreenWidth, mScreenHeight; //view高宽 int mWidth, mHeight; /** * 是否在拖拽过程中
()、LayoutParams、动画、scollTo 与scollBy,以及Scroller。...实现View 滑动有很多种方法,在这里主要讲解6 种滑动方法,分别是layout()、offsetLeftAndRight()与offsetTopAndBottom()、LayoutParams、动画、...图1 View 的滑动 2 offsetLeftAndRight()与offsetTopAndBottom() 这两种方法和layout()方法的效果差不多,其使用方式也差不多。...; layoutParams.topMargin = getTop() + offsetY; setLayoutParams(layoutParams); 4 动画 可以采用View 动画来移动...如果对一个Button 进行如上的平移动画操作,当Button 平移300 像素停留在当前位置时,我们点击这个Button 并不会触发点击事件,但在我们点击这个Button 的原始位置时却触发了点击事件
这篇文章记录了自己排查动画问题时的思路,最后的解决有一些侥幸,也是因为最近刚好学习了部分安卓代码,技术视野稍微开阔了些 我们在工作中经常会遇到一些动画卡顿的问题,往往是一些性能比较差的安卓手机,笔者最近就遇到了这样的情况...定义不同阶段的动画间隔太短,导致了按钮的卡顿, 但是当我只保留了scaleAnimation中的3个阶段后,发现动画还是能看出来卡顿, 因此应该不是scaleAnimation的问题,同时我又将filter...3.如果你修改一个非样式且非绘制的CSS属性,那么浏览器完成样式计算之后,会跳过布局和绘制的过程,直接进行渲染层合并。 从我们遇到的问题来看,我们需要优化的是第3种情况,也就是渲染层合并。...那么有没有可能是因为我们的背景图片和按钮渲染在了同一渲染层,导致filter每次都要进行重新计算呢?...但是为什么开启了硬件加速的动画,会卡顿呢? 目前h5能做的优化内容看起来已经都做了,这个时候难道真的是安卓手机性能太差吗?
animator.gif 其中的核心思想是改写父布局的addView方法,并使用我们自定义的ViewGroup将系统控件包裹,将系统控件隐式的嵌套了一个ViewGroup,动画效果的实现在自定义的ViewGroup...上执行 /** * 自定义动画框架使用的LinearLayout */ public class AnimatorLinearLayout extends LinearLayoutCompat {...isDiscrollvable(p)) { super.addView(child, params); } else { //将原始child中的属性给...public int mDisCrollveTranslation;//平移值 public boolean mDiscrollveScaleX;//是否需要x轴方向缩放...public boolean mDiscrollveScaleY;//是否需要y轴方向缩放 public MyLayoutParams(Context c, AttributeSet
这里要注意 滑动过程中View内部的两个属性mScrollX和mScrollY的改变规则, 这两个属性可以通过getScrollX和getScrollY方法分别得到。...在滑动过程中, mScrollX的值总是 等于View左边缘和View内容左边缘在水平方向的距离, (即 mScrollX = View左边缘的X值 - View内容左边缘的X值) 而mScrollY...scrollTo和scrollBy只能改变View内容的位置 即,本方式实现的是View 内容的滑动!!! 而不能改变View 本身在布局中的位置和顶点坐标!!!...绿色边框代表View在屏幕上对应的矩形区域,灰色阴影代表View的内容 The 2. 使用动画 通过动画可以让一个View进行平移,而平移就是一种滑动。...基于这一点, 我们不能简单地给一个View做平移动画 并且还希望它在新位置继续触发事件。 The 3. 改变布局参数 改变布局参数,即改变LayoutParams,使View重新布局。
简述shell 命令与 非shell命令区别 shell命令不用先adb shell进入界面执行 非shell命令必须要 adb shell进入界面执行 基础非shell命令 1.安装app adb install...apk文件的绝对路径 2.卸载app adb uninstall 包名 3.将设备文件拉取本地 adb pull 设备文件路径 本地保存路径 4.将本地文件上传到设备 adb push 本地文件路径...设备文件保存路径 5.截屏 adb shell screencap -p 截图文件保存设备上的路径 拓展 直接保存本地 adb sehll screencap -p /sdcard/tmp.png adb...pull /sdcard/tmp.png D:\ 6.录屏 adb shell screenrecord 录屏保存设备上的路径 7.输入文本内容 adb shell input text '输入的内容...' 基础的shell命令 1.安装app pm install apk路径 2.卸载app pm uninstall 包名 3.启动应用 am start -n 包名/包名.activity名称 4.启动服务
PopWindow是一个可以在Activity 之上显示任意View的控件。 PopWindow可自定义进出动画、显示位置,根据已有视图对齐显示,可谓弹框一哥。...true mPopupWindow.setTouchable(true);//可触碰--默认true mPopupWindow.setOutsideTouchable(true);//点外部消失 //在安卓...4.4(API 19)测试需要背景(这里是一个透明色)才能点外部消失,安卓8.1(API 27)则不需要 mPopupWindow.setBackgroundDrawable(ContextCompat.getDrawable...进出动画 2.动画样式: 默认动画是忽然出现,忽然消失的 values/styles.xml 的喜欢与支持
前几天 Ui 突然给我一个 gif 图说要把这个做成启动动画,看到效果图的我表示一脸懵逼。...首先对着 gif 图一帧一帧观察了一遍,分析动画的过程。把动画拆解成两部分: 四个颜色的圆运动。 Logo的出现 logo 的出现就是简单的alpha 动画,难点就在四个圆运动。...找 Ui 拿到了四个圆的运动轨迹,如下图所示: 根据轨迹,我把运动轨迹拆分成平移和半圆旋转,创建出Path路径,再让圆沿着 Path 运动,在运动的时候加上 alpha 和缩放的属性,结束的时候把圆移除掉并显示...=newLayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT,ViewGroup.LayoutParams.WRAP_CONTENT); lp.addRule...ObjectAnimator.ofObject(….,”xxx”,估值值,区间数组); 【定义动画属性xxx和区间】 插值器/加速器(Interpolator)【返回当前数字进度t】 估值值(Evaluator
Activity的切换效果 二、属性动画 2.1 使用方法 2.2对任意属性做动画 2.3 属性动画的原理 三、使用动画的注意事项 Android中动画分为:View动画、帧动画(也属于View动画)...View动画是对View做图形变换(平移、缩放、旋转、透明度)从而产生动画效果。 帧动画就是顺序播放一系列图片来产生动画效果。 属性动画可以动态改变对象的属性来达到动画效果。...一、View动画 View动画的平移、缩放、旋转、透明度 分别对应 Animation的的4个子类:TranslateAnimation、ScaleAnimation、RotateAnimation、...最后使用AnimatorSet的play、with、after 实现 先横移,然后 竖移和颜色变化 同时的动画集合效果。...注意点: 关于View动画和属性动画的平移,属性动画改变属性值setTranslationX 的视图效果像view动画的平移一样,都是view实际的layout位置没变,只改变了视图位置;不同点是属性动画
TextureView作为普通View在View hierarchy中管理与绘制,在执行移动、缩放、旋转和透明度动画时不会出现异常,更适用于小窗播放视频功能。...一、实例演示 以下以MedioPlayer播放视频为例,演示SurfaceView和TextureView在执行移动、缩放、旋转和透明度动画时的效果。实例代码在文章末尾。...2、Android N设备上的动画对比 3.gif 5.gif 在Android N的设备上,SurfaceView在执行移动和缩放动画时,没有黑边;执行旋转动画时,它的画面没有跟随旋转;执行透明动画时...这里的滑动和缩放操作是通过修改SurfaceView的LayoutParam来实现的,而不是执行动画。...,在onMeasure中,测量Player和Desc的宽高。
原理 通过确定开始的视图样式 & 结束的视图样式、中间动画变化过程由系统补全来确定一个动画 结束的视图样式:平移、缩放、旋转 & 透明度样式 即补间动画的动画效果就是:平移、缩放、旋转 & 透明度动画...---- 4.5 组合动画 上面讲的都是单个动画效果;而实际中很多需求都需要同时使用平移、缩放、旋转 & 透明度4种动画,即组合动画 使用组合动画需要用到标签 Set 对于 Animation...在组合动画里scale缩放动画设置的repeatCount(重复播放)和fillBefore(播放完后,视图是否会停留在动画开始的状态)是无效的。 // 2....应用场景 7.1 标准的动画效果 补间动画常用于视图View的一些标准动画效果:平移、旋转、缩放 & 透明度; 除了常规的动画使用,补间动画还有一些特殊的应用场景。...总结 本文对Android 动画中的补间动画的使用进行了详细分析 接下来,我我将继续对Android 动画进行分析,有兴趣的可以继续关注Carson_Ho的安卓开发笔记 ---- 请帮顶或评论点赞!
虽然弹幕效果可使用平移动画实现,但平移动画比较单调,只能控制位移,不能控制速率、文字大小、文字颜色等要素。若想同时操纵视图的多种属性要素,需要采用属性动画加以实现。...然而视图的位移大小由间距属性margin控制,该属性又分为上下左右四个方向,更要命的是,这几个margin并非视图View类的属性,而是布局参数LayoutParams的属性,意味着无法通过margin...以间距属性为例,它的动画步骤说明如下: 1、定义一个间距估值器,它实现了接口TypeEvaluator的evaluate方法,并在该方法中返回指定时间点的间距数值; 2、调用ValueAnimator...类的ofObject方法,根据间距估值器、开始位置和结束位置构建属性动画对象; 3、调用属性动画对象的addUpdateListener方法设置刷新监听器,在监听器内部获取当前的间距数值,并调整视图此时的布局参数...Utils.dip2px(mContext, mTextSize)); layout.addView(tv_comment); // 添加至当前视图 // 根据估值器和起止位置创建一个属性动画
看一下实现效果吧: image.png 动画 我们先来看看Android中的动画吧: Android中的动画分为三种: Tween动画,这一类的动画提供了旋转、平移、缩放等效果。...Alpha – 淡入淡出 Scale – 缩放效果 Roate – 旋转效果 Translate – 平移效果 Frame动画(帧动画),这一类动画可以创建一个Drawable序列,按照指定时间间歇一个一个显示出来...Property动画(属性动画),Android3.0之后引入出来的属性动画,它更改的是对象的实际属性。...分析 image.png 我们可以看到百度外卖的下拉刷新的头是一个骑车的快递员在路上疾行,分析一下我们得到下面的动画: 背景图片的平移动画 太阳的自旋转动画 两个小轮子的自旋转动画 这就很简单了,接下来我们去百度外面的图片资源文件里找到这几张图片...:(下载百度外卖的apk直接解压即可) image.png 定义下拉刷新头文件:headview.xml 这里注意一下:我们定义了两张背景图片的ImageView是为了可以实现背景的平移动画效果
领取专属 10元无门槛券
手把手带您无忧上云