LayoutParams layoutParams = safe_content.getLayoutParams(); layoutParams.height=0;//默认为0 safe_content.setLayoutParams...Integer) animator.getAnimatedValue();// 运行当前时间点的一个值 layoutParams.height=value; safe_content.setLayoutParams...layoutParams = des_content.getLayoutParams(); layoutParams.height=getShortMeasureHeight(); des_content.setLayoutParams...{ int value=(Integer) animation.getAnimatedValue(); layoutParams.height=value; des_content.setLayoutParams...Override public void onAnimationCancel(Animator arg0) { } }); animator.setDuration(500);//设置动画持续时间
故名思议就是通过动画的方式改变对象的属性了,所以他也是功能最为强大的,可以这样说前面的帧动画和视图动画能做到的,他都能做到,并且更为强大 相关的属性 Duration动画的持续时间,默认300ms。...Animator sets: 动画集合,你可以定义一组动画,一起执行或者顺序执行。...相关的类 ObjectAnimator 动画的执行类,后面详细介绍 ValueAnimator 动画的执行类,后面详细介绍 AnimatorSet 用于控制一组动画的执行:线性,一起,每个动画的先后执行等...总的来说,属性动画就是,动画的执行类来设置动画操作的对象的属性、持续时间,开始和结束的属性值,时间差值等,然后系统会根据设置的参数动态的变化对象的属性。...ViewGroup.LayoutParams vg = mTarget.getLayoutParams(); vg.height = height; mTarget.setLayoutParams
前几天 Ui 突然给我一个 gif 图说要把这个做成启动动画,看到效果图的我表示一脸懵逼。...首先对着 gif 图一帧一帧观察了一遍,分析动画的过程。把动画拆解成两部分: 四个颜色的圆运动。 Logo的出现 logo 的出现就是简单的alpha 动画,难点就在四个圆运动。...lp.addRule(CENTER_VERTICAL,TRUE); lp.setMargins(0,0,0,dp80); purple=newImageView(getContext()); purple.setLayoutParams...getDrawable(R.drawable.shape_circle_yellow)); addView(yellow); blue=newImageView(getContext()); blue.setLayoutParams...).getDrawable(R.drawable.shape_circle_blue)); addView(blue); red=newImageView(getContext()); red.setLayoutParams
其菜单button也算是让大多数人感到了惊艳,如今看来事实上是非常easy的就是动画的结合。...Auto-generated method stub animationRotate.setFillAfter(true); } }); return animationRotate; } //移动的动画效果...float fromXDelta, float toXDelta, float fromYDelta, float toYDelta) * * float fromXDelta:这个參数表示动画開始的点离当前...* * float toXDelta, 这个參数表示动画结束的点离当前View X坐标上的差值; * * float fromYDelta, 这个參数表示动画開始的点离当前...View Y坐标上的差值; * * float toYDelta)这个參数表示动画開始的点离当前View Y坐标上的差值。
前言 动画的使用 是 Android 开发中常用的知识 可是动画的种类繁多、使用复杂,每当需要 采用自定义动画 实现 复杂的动画效果时,很多开发者就显得束手无策 本文将详细介绍 Android 动画中...关于Android 动画的系列文章: 动画的使用,请参考文章: Android 属性动画:这是一篇很详细的 属性动画 总结&攻略 Android 动画:手把手教你使用 补间动画 Android...手把手教你写一个完整的自定义View Path类的最全面详解 - 自定义View应用系列 Canvas类的最全面详解 - 自定义View应用系列 为什么你的自定义View wrap_content不起作用...;duration = 设置一帧持续时间(ms) <item...手把手教你写一个完整的自定义View Path类的最全面详解 - 自定义View应用系列 Canvas类的最全面详解 - 自定义View应用系列 为什么你的自定义View wrap_content不起作用
虽然弹幕效果可使用平移动画实现,但平移动画比较单调,只能控制位移,不能控制速率、文字大小、文字颜色等要素。若想同时操纵视图的多种属性要素,需要采用属性动画加以实现。...类的ofObject方法,根据间距估值器、开始位置和结束位置构建属性动画对象; 3、调用属性动画对象的addUpdateListener方法设置刷新监听器,在监听器内部获取当前的间距数值,并调整视图此时的布局参数...RelativeLayout.LayoutParams( LayoutParams.MATCH_PARENT, Utils.dip2px(mContext, 40)); layout.setLayoutParams... tv_params.leftMargin = (int) (mWidth-textWidth - margin); } tv_comment.setLayoutParams...RelativeLayout.CENTER_VERTICAL); // 垂直方向居中 tv_params.addRule(RelativeLayout.ALIGN_PARENT_RIGHT); // 与上级布局右对齐 tv.setLayoutParams
这里应该注意一点,最外层的view必须是FrameLayout,因为我们后面会根据FrameLayout的特性进行动画的操作。...我们获取了一些必要的参数,比如当前itemView和ImageView在window中的位置,这样才能做动画的参数值,但是该怎么样做动画呢,首先属性动画虽然能改变view的属性,但是并不能改变view在当前层级的位置...itemViewLocation[0], itemViewLocation[1] - statusHeight, 0, 0); } itemViewBitmap.setLayoutParams...接下来就好写多了,我们在方法内,执行动画,监听动画结束即可,在动画结束时,我们需要给真实的itemView和imageView赔礼道歉,并把它们放出来并且换一身新衣服了。...注意这里是本地和网络图片最大的区分点,本地图片我们加载基本是不需要时间的,而网络加载由于网络条件和加载库的原因我们并不能在动画完成后进行加载,而是应该在动画开始时,就进行设置相关的资源,所以这里就产生了分支
getContext(), R.anim.bp_bottom_bg_in)); //把这个区域全部显示出来 ((BottomPopupWindowView)this).setLayoutParams...RelativeLayout.ALIGN_PARENT_BOTTOM,-1); ((BottomPopupWindowView)BottomPopupWindowView.this).setLayoutParams...最重要的是显示菜单实现是把BottomPopupWindowView的大小扩展到全屏,所以设置((BottomPopupWindowView)this).setLayoutParams(new RelativeLayout.LayoutParams...再启动内容域View即content_View的退出动画,在动画结束后用content_view.removeAllViews(); 起初菜单内容,再像上面一样开启背景颜色渐变动画,最后只需使BottomPopupWindowView...,以便根据数据实现动画,严选的弹出和显示商品详情动画很简单就是不断设设置View的间距就可以了。
Animation类主要用于补间动画效果,提供了动画启动、停止、重复、持续时间等方法。Animation类中的方法适用于任何一种补间动画对象。...setDuration方法:设置持续时间 【功能说明】该方法用于设置动画的持续时间,以毫秒为单位。该方法是设置补间动画时间长度的主要方法,使用非常普遍。...然后,在第一个按钮监听器中设置了动画的持续时间,之后启动该动画。在第二个按钮监听器中取消该动画 ?...(10000); //设置尺寸变化动画的持续时间 alphaAnimation.setDuration(10000); //设置透明度渐变动画的持续时间...duration:动画帧的持续时间,单位为毫秒。 【实例演示】下面通过代码来演示如何实现一个简单的帧动画。
null 或者 动画在执行中 4 if (valAnimator!...取控件textView当前的布局参数 25 linearParams.width = h;// 控件的高强制设成20 26 tvAdd.setLayoutParams...null 或者 动画在执行中 59 if (valAnimator!...取控件textView当前的布局参数 80 linearParams.width = h;// 控件的高强制设成20 81 tvAdd.setLayoutParams...取控件textView当前的布局参数 107 linearParams.width = h;// 控件的高强制设成20 108 tvAdd.setLayoutParams
---- 使用动画 动画这块我们后面会单独具体介绍,这里先简单介绍下怎么使用动画来实现滑动。...---- 改变布局参数 改变布局参数很简单,就是改变其 LayoutParams,我们可以通过 View.getLayoutParams() 来获取这个布局参数,然后修改属性, 再通过 setLayoutParams...llp.setMarginStart(llp.getMarginStart() + 50); llp.topMargin += 50; btAnim.setLayoutParams...补间动画和属性动画的使用?...A:通过 View.getLayoutParams() 获取LayoutParams,然后修改宽高、边距等,再通过 setLayoutParams() 或者 requestLayout() 来重新布局。
LayoutParams.MATCH_PARENT, RelativeLayout .LayoutParams.WRAP_CONTENT); view.setLayoutParams...IllegalStateException("layoutParams must be RelativeLayout.LayoutParams "); } view.setLayoutParams...,在动画的执行过程中不断改变contentRelativeLayout的高度,注意在执行动画之前,我们需要小调用view.measure(childWidthMode, childHeightMode)...(3 - 1)) / 3; int singleHeight = singleWidth; /** * 根据子view数量确定高度,这里直接调用setLayoutParams...getPaddingTop(); params.height = singleHeight * rows + gap * (rows - 1)+marginHeight; setLayoutParams
、ScaleAnimation和TranslateAnimation,他们分别可以实现渐变动画、旋转动画、平移动画、缩放动画 功能,当然我们今天的主角就是缩放动画 ScaleAnimation。...mToX; //动画开始后X坐标比例 private float mFromY; //动画开始前Y坐标比例 private float mToY; //动画开始后Y坐标比例 //动画开始前X坐标类型...android:pivotX="50%" //缩放起点x轴坐标 android:pivotY="50%" //缩放起点Y轴坐标 android:duration="700" //动画持续时间...fillEnabled:用来控制fillBefore属性是否有效,若为true,则fillBefore生效;若为false则不管设置fillBefore为true还是false,都不起作用。...animation = new ScaleAnimation(1.0F, 1.4F, 1.0F, 1.4F, 1, 0.5F, 1, 0.5F); animation.setDuration(200); //动画持续时间
); params.addRule(RelativeLayout.ALIGN_LEFT, -1); toggleButton_AutoPlay.setLayoutParams...addRule(RelativeLayout.ALIGN_LEFT, R.id.toggle_StartOnBoot); toggleButton_StartOnBoot.setLayoutParams... SettingUtils.set(context, SettingUtils.IS_AUTO_START, isChecked); } // 播放动画...R.drawable.progress_thumb_selector); toggle.setGravity(Gravity.RIGHT | Gravity.CENTER_VERTICAL); // 播放动画...R.drawable.progress_thumb_off_selector); toggle.setGravity(Gravity.LEFT | Gravity.CENTER_VERTICAL); // 播放动画
(2)使用动画 网上例子很多,不再说明 (3)改变布局参数 比如让一个button向右平移100px可以用如下代码 MarginLayoutParams params = (...setLayoutParams(params) (4)各种滑动方式对比 使用scrollTo/scrollBy:操作简单,适合对View内容的滑动 动画:操作简单,主要适合于没有交互的view和实现复杂的动画效果...mViscousFluidNormalize = 1.0f / viscousFluid(1.0f); } 在这个方法中我们只看到了对一些滚动的基本设置动作,比如设置滚动模式,开始时间,持续时间等等...; mFinished = true; } return true; } 它根据时间的流逝来计算当前的scrollX和scrollY的值 (2)动画
能够通过button点击一张张的切换显示的图片,并且使用ImageSwitcher组件在每次切换的时候也能够为其添加一些动画的效果,此类定义例如以下: java.lang.Object ↳...int resid) 普通 设置显示的图片资源ID 4 public void setInAnimation(Animation inAnimation) 普通 图片读取进ImageSwitcher时的动画效果...5 public void setOutAnimation(Animation outAnimation) 普通 图片从ImageSwitcher要消失时的动画效果 假设要想实现图片的切换功能...CENTER); // 居中显示 img.setLayoutParams( new ImageSwitcher.LayoutParams( // 自 适应图片大小...image.setBackgroundColor(Color.GRAY);//设置对齐效果 image.setScaleType(ImageView.ScaleType.CENTER);//设置剧中 image.setLayoutParams
使用动画 通过动画可以让一个View进行平移,而平移就是一种滑动。...getLayoutParams(); params.width += 100; params.leftMargin += 100; mButton1.requestLayout();//或mButton1.setLayoutParams...动画: 使用动画实现View的滑动,要分情况。...动画 以上已经对View动画、属性动画分别给过例子; 或参考以下博客: Android动画基础详析 | 概述、逐帧动画、视图动画(附诸多实际运行效果动图) Android动画基础详析 | 属性动画基础及...= getLeft() + offsetX; layoutParams.topMargin = getTop() + offsetY; setLayoutParams
布局图 闪屏页不难做, 关键是动画的设置. 直接上代码....动画集合 animationSet = new AnimationSet(true); animationSet.addAnimation(rotateAnimation...(你可以弄得简约一些, 也可以夸张一些), 然后添加到一个动画集合当中, 设置给我们的视图....if (i > 0) { params.leftMargin = 32; } point.setLayoutParams...iv_red_point.getLayoutParams(); params.leftMargin = (int) leftMargin; iv_red_point.setLayoutParams
item动画 实现思路 看到这个动画效果时,我首先想到的是,这个动画是可控的,不是通过设置anim.setDuration来实现的,所以要放弃Animation的念头,转而用传入process(动画执行的进度...分解动画 继续化整为零,可以将这个动画效果分解为:蒙版透明度(alpha)、宽度(width)、图片缩放(scale) 状态转换 先不考虑动画变化的具体细节,先分清楚状态机。...private int mProcess = 0; /** * 通过进度值控制动画的进度 * @param viewGroup 父容器 * @param process 动画变化进度 */...int)marginHorizontal, (int)mMarginTop, (int)marginHorizontal, (int)mMarginBottom); view.setLayoutParams...int)marginHorizontal, (int)mMarginTop, (int)marginHorizontal, (int)mMarginBottom); view.setLayoutParams
contentLayoutParams.rightMargin = -moveDistanceX; checkLeftMenuBorder(); contentLayout.setLayoutParams...: contentLayoutParams.leftMargin = moveDistanceX; checkRightMenuBorder(); contentLayout.setLayoutParams...= 0; break; } publishProgress(rightMargin); // 为了要有滚动效果产生,每次循环使线程睡眠一段时间,这样肉眼才能够看到滚动动画...= 0; break; } publishProgress(leftMargin); // 为了要有滚动效果产生,每次循环使线程睡眠一段时间,这样肉眼才能够看到滚动动画...onPostExecute(Integer leftMargin) { contentLayoutParams.leftMargin = leftMargin; contentLayout.setLayoutParams