RecyclerView的进场动画、点击动画_recyclerview入场动画_沙漠一只雕得儿得儿的博客-程序员宅基地

技术标签: Android  

下面图片即为本次的运行效果:

 

1.进场动画是在viewholder中的onViewAttachedToWindow()中添加动画即可,动画的代码:

private ScaleInAnimation mSelectAnimation = new ScaleInAnimation();

@Override
    public void onViewAttachedToWindow(DiffVH holder) {
        super.onViewAttachedToWindow(holder);
        addAnimation(holder);
    }

private void addAnimation(DiffVH holder) {
        for (Animator anim : mSelectAnimation.getAnimators(holder.itemView)) {
            anim.setDuration(300).start();
            anim.setInterpolator(new LinearInterpolator());
        }
    }

ScaleInAnimation.java:

import android.animation.Animator;
import android.animation.ObjectAnimator;
import android.view.View;

public class ScaleInAnimation{
    private static final float DEFAULT_SCALE_FROM = .5f;
    private final float mFrom;

    public ScaleInAnimation() {
        this(DEFAULT_SCALE_FROM);
    }

    public ScaleInAnimation(float from) {
        mFrom = from;
    }

    public Animator[] getAnimators(View view) {
        ObjectAnimator scaleX = ObjectAnimator.ofFloat(view, "scaleX", mFrom, 1f);
        ObjectAnimator scaleY = ObjectAnimator.ofFloat(view, "scaleY", mFrom, 1f);
        return new ObjectAnimator[]{scaleX, scaleY};
    }
}

2.每个item的点击效果是一个自定义view,具体看BamLinearLayout.java

使用的话直接在xml中引用即可:

<com.example.diffut.BamLinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="120dp"
    android:layout_marginBottom="1dp"
    android:padding="5dp"
    android:background="@mipmap/background"
    android:orientation="vertical">

    <TextView
        android:id="@+id/tv1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textSize="22sp"
        android:textStyle="bold"
        tools:text="第一个" />

    <TextView
        android:id="@+id/tv2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textSize="24sp"
        android:textStyle="bold"
        tools:text="我的存在只为了证明定向刷新中的定向刷新" />

    <com.example.diffut.TextSwitchView
        android:id="@+id/switchView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />

</com.example.diffut.BamLinearLayout>

完整的项目地址:

https://github.com/buder-cp/base_component_learn/tree/master/diffut

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/cpcpcp123/article/details/84567010

智能推荐

webstorm护眼绿柔主题分享(JetBrains都可用)_webstorm主题_闭曈彤的博客-程序员宅基地

更新:调整了默认字体为25号,按Ctrl+滚轮可以缩放字体。如图,由于webstorm没有自带的豆沙绿色系,故参考了sublime和Hbuilder的豆沙绿主题进行配置。本人十分钟爱豆沙绿色系,绿色和黄色是最让人舒适的颜色。效果如下图 导出的主题下载地址: 链接:https://pan.baidu.com/s/1gi3RG85k4nsg4JVO8dEVqg 密码:etfz..._webstorm主题

先验概率与后验概率、贝叶斯区别与联系_松鼠录的博客-程序员宅基地

本文假设大家都知道什么叫条件概率了(P(A|B)表示在B事件发生的情况下,A事件发生的概率)。先验概率和后验概率教科书上的解释总是太绕了。其实举个例子大家就明白这两个东西了。假设我们出门...

Flutter学习之路---------第一个Flutter项目_flutter alter_切切歆语的博客-程序员宅基地

Flutter是谷歌的移动UI框架,可以快速在iOS和Android上构建高质量的原生用户界面。Flutter可以与现有的代码一起工作。在全世界,Flutter正在被越来越多的开发者和组织使用,并且Flutter是完全免费、开源的。 Flutter中文网 (有安装和搭建Flutter的教程)https://flutterchina.club 安装 Flutter 和 Dar..._flutter alter

NPOI 1.2.1版本替换为2.4.0版本实体类变更_npoi 版本_sss1849的博客-程序员宅基地

NPOI 1.2.1版本替换为2.4.0版本实体类变更引用文件替换实体类变更2018年12月7日NPOI在2.0之后的版本添加了对office2007及以上office版本的兼容(1.x版本只支持office2003文件),并删除了许多旧的实体类、方法、属性,采用新的实体类、方法、属性替换。公司旧项目的导入导出excel功能使用的是1.2.1版本的DLL,在新项目中,要使用到新版本的读取、替..._npoi 版本

戴尔dell的R 720服务器设置u盘启动_戴尔r720设置u盘启动_Menardღ的博客-程序员宅基地

通过U盘给服务器装系统时要设置u盘启动,前几篇有发过给u盘制作Linux安装镜像。开机按F11进入BIOS设置选择BIOS boot menu,选下面一个也可以看到U盘启动选择U盘启动成功进入U盘系统的安装界面..._戴尔r720设置u盘启动

获取MATLAB工具箱的运行时间_matlab遗传算法工具箱运行时间_爆浆蓝莓的博客-程序员宅基地

【小tip系列】总结在编写代码或进行算法验证时,我们常常需要知道运行某段代码花费的时间,一般都可以通过调用现有函数实现。如:C语言可调用clock()函数,matlab可采用tic&toc组合,十分便利。而笔者最近用到了MATLAB的工具箱,同样需要获取工具箱求解的运行时间,而官方提供的工具箱中并没有提供计时功能的菜单,上网搜索无果后,认真地思考了一两分钟,终于灵机一动想到了解决方案!!!【此处以pdetool工具箱为例】1.打开工具箱在命令行窗口输入工具箱的名字回车或通过上方菜单栏“附_matlab遗传算法工具箱运行时间

随便推点

图论学习笔记(一) 图_扇形割集-程序员宅基地

前言:参考教材:《集合论与图论》第三版 屈婉玲,刘捍贫,刘田第七章 图7.1 图的基本概念无向图:有序二元组G=<V,E>,其中V≠∅称为G的顶点集,可记为V(G),E称为边集,可记为E(G),它是无序积V&V的多重子集(vi到vj可以连多条边),其元素称为无向边有向图:有序二元组D=<V,E>,其中V≠∅称为D的顶点集,可记为V(D),E称为边集,可记为E(D),它是有序积V×V的多重子集(vi到vj可以连多条边),其元素称为有向边阶数:如果一个图有n个顶点,就记_扇形割集

MTK 无电池 上电直接开机。_Healer_S的博客-程序员宅基地

下面详述如何在软件中去掉长按关机或重启的功能:1.请在文件/vendor/mediatek/proprietary/bootable/bootloader/preloader/platform/mt6739/src/drivers/pmic.c中重新定义如下函数:void PMIC_enable_long_press_reboot(void){ pmic_config_in...

QML学习笔记1链表_qml 链表_月上柳烧头的博客-程序员宅基地

一、model(模型)和view(视图)都通过delegate(代理)连接。model提供数据,每个数据项可能有多个值。二、Repeater视图:适合有限的静态数据,不可滑动最基本的分离数据与显示的方法,被用于实例化一组数据项,很容易与一个用于填充用户界面的定位器相结合。通过index区分子元素,好像相当于listwidget里面很多item每个Repeater元素包含一个Text元素,..._qml 链表

idea写多个css标签<li>列快捷方法_杨咩咩yang的博客-程序员宅基地

写75个li列。写如下代码li*75>img[src="img/$.jpg"]//写75个li列。鼠标光标放在此行最后一个字符后,按tab键鼠标光标放在此行最后一个字符后,按tab键 <li><img src="img/1.jpg" alt=""></li> <li><img src="img...

3dvary灯光材质为什么不亮_3dmax灯光教程灯光打出来太假?不真实?杂点?曝光?原因都在这儿呢..._weixin_39872334的博客-程序员宅基地

“老师,灯光要怎么打”“老师,我打的灯光没感觉,很假”“灯光要怎么调”“打了灯光,却不亮”“我渲的图,很多杂点”“曝光了”“溢色了”“图很别扭不知道怎么改”平时和学员聊天中,经常收到这样的问题,怎么说呢究其原因,主要还是对自己职业发展定位模糊,基础也不扎实在很多小的设计公司小的工作室,日常工作要求是快速出图通常是要求使用外部的模型,套用固定的参数调材质渲染所以对于作图是一知半解,更别提做..._3d光度学目标灯光不亮

java 执行js脚本引擎_java 调用js 引擎_生死有命_富贵在天的博客-程序员宅基地

package com.zdc.rhion;import java.io.FileNotFoundException;import java.io.FileReader;import java.io.IOException;import java.net.URL;import javax.script.Invocable;import javax.script.ScriptEngi..._java 调用js 引擎

推荐文章

热门文章

相关标签