美文网首页
View 滑动效果

View 滑动效果

作者: w小强 | 来源:发表于2019-06-03 23:25 被阅读0次

title: View 滑动效果
date: 2017-02-08
tags: function
categories: android


[TOC]

View

实现View滑动的方式

主要分为以下三种方式

View[View 滑动方式] -->|内容滑动|a(使用ScrollTo和ScrollBy)
View --> b(使用动画的方式)
b --> |3.0以上版本|e[属性动画]
b --> |只是影像滑东,事件还在原来位置|f[传统动画]
View --> c(通过改变布局参数)
view_huadong.png

使用ScrollTo 和 ScrollBy

只能实现View内容在View内的变动。

scrollTo(int x,int y)//绝对距离的滑动
scrollBy(int x,int y)//相对距离的滑动
  1. 使用这种方式处理内容滑动,为了达到平滑的效果,一般会借助Scroller类,具体的方法如下:
public TestView extends View{
   //Scroller 本身不能操作View的滑动,它只是根据我们设定的初始化位置和结束位置以及滑动时间,帮我们计算每个时间点的具体位置。
    Scroller mScroller = new Scroller(mContext);
    private void smoothScrollTo(int destX,int destY){
        int scrollX = getScrollX();
        int deltaX = destX - scrollX;
        //初始化Scroller的起始和结束位置还有时间
        mScroller.startScroll(scrollX,0,deltax,0,1000);
        //开始重绘
        invalidate();
    }
    /**
     * View每次绘制调用OnDraw()方法的时候,会先调用这个方法。这个方法在父类中* 是空实现的
     */
    @Override
    public void computeScroll(){
       //计算时间。返回值表示当前滑动是否已经结束。
        if(mScroller.computeScrollOffset()){
           //调用内部方法开始滑动了
            scrollTo(mscroller.getCurrX(),mScroller.getCurrY());
            //开始下一次的重新绘制
            postInvalidate();
        }
    }
}

使用动画的方式

属性动画

通过操作"translationX"和"translationY"属性去进行平滑的滑动。使用ObjectAnimator.ofFloat()进行处理。
  • 衍生介绍 ValueAnimator 类
    这个类主要是设定一个范围和时间,然后数字平滑的在这个时间中变动,也可以设定变动规则(比如加速度)。
ValueAnimator animator = ValueAnimator.ofInt(0,1).setDuration(1000);
animator.addUpdateListener(new AnimatorUpdateListener(){
   @Override
   public void onAnimationUpdate(ValueAnimator animator){
      float fraction = animator.getAnimatedFraction();
      mButton.scrollTo(startX+(int)(deltaX * fraction),0);
   }
});
animator.start();

常规动画

常用的translate各种帧动画效果

改变布局参数

通过设定LayoutParams的Margin的方法,实现动画的效果

相关文章

  • 仿实现尺子滑动

    实现的尺子滑动的效果如下: 使用到知识点:view的滑动,以及view的绘画尺子。 view的滑动相关知识介绍 先...

  • View 滑动效果

    title: View 滑动效果date: 2017-02-08tags: functioncategories:...

  • View的事件体系(二)实现View滑动的三种方式

    实现View滑动的三种方式: 1.通过动画给View增加平移滑动的效果 2.通过改变View的LayoutPara...

  • [Android] 滑动操作的原理及处理

    滑动效果的产生 滑动一个 View ,其实就是移动一个 View,本质上是对 View 的坐标位置进行不停的改变。...

  • Android 自定义View学习(十四)——View滑动学习

    学习资料: Android群英传 Android艺术探索 滑动效果就是实现动态修改一个View的坐标。实现滑动效果...

  • 自定义View之滑动事件

    一滑动效果的产生 滑动一个View,本质区别就是移动一个View。改变当前View所在的坐标,原理和动画相似不断改...

  • Android-View的滑动

    滑动效果是如何产生的? 滑动一个View从本质上来说就是移动一个View,改变其当前的坐标。所以,想要滑动一个Vi...

  • View 的滑动原理和实现方式

    开发中,为了增加更多炫丽的效果,我们经常在应用中添加滑动效果,今天就来分析一下 View 中滑动效果的实现原理以及...

  • View滑动原理

    开发中,为了增加更多炫丽的效果,我们经常在应用中添加滑动效果,今天就来分析一下 View 中滑动效果的实现原理以及...

  • 记录一个View吸顶效果的实现思路

    效果描述: 在UITableView滑动时,UITableView上某个位置的View向上滑动到视图顶部然后吸顶;...

网友评论

      本文标题:View 滑动效果

      本文链接:https://www.haomeiwen.com/subject/yskkxctx.html