`
iaiai
  • 浏览: 2212925 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

在git发现的一个AnimatedListView

 
阅读更多
在git发现的一个AnimatedListView

在以后的项目中可以添加,就三个类...
/*
 * Copyright (c) 2013 Kyle W. Banks
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *  http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package com.kylewbanks.animlv;

import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.view.animation.Animation;
import android.view.animation.TranslateAnimation;
import android.widget.ArrayAdapter;

import java.util.List;

/**
 * Manages a List of objects to display in the AnimatedListView. When a new view needs to be displayed, it will
 * request that the AnimatedListViewObjectMapper populate the view, and then animated it.
 */
public class AnimatedListViewAdapter extends ArrayAdapter {

    private LayoutInflater _inflater;

    private int _resourceId;
    private List _objects;
    private AnimatedListViewObjectMapper _objectMapper;

    private int lastPosition = -1;

    public AnimatedListViewAdapter(Context context, int resourceId, List objects, AnimatedListViewObjectMapper objectMapper) {
        super(context, resourceId, objects);

        this._inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        this._resourceId = resourceId;
        this._objects = objects;
        this._objectMapper = objectMapper;
    }


    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        if (position > _objects.size()) {
            return null;
        }

        if (convertView == null) {
            convertView = _inflater.inflate(_resourceId, parent, false);
        }

        Object object = _objects.get(position);
        _objectMapper.bindObjectToView(object, convertView);

        if(convertView != null) {
            Animation animation = new TranslateAnimation(0, 0, (position > lastPosition) ? 100 : -100, 0);
            animation.setDuration(400);
            convertView.startAnimation(animation);
        }
        lastPosition = position;

        return convertView;
    }
}

核心就是这个类了....呵呵,就这几句
分享到:
评论

相关推荐

    可以在windowsxp安装的最后一个git版本

    本文将深入探讨可以在Windows XP上安装的最后一个Git版本——Git-2.10.0-32-bit.exe,以及与之相关的知识。 首先,让我们了解Windows XP系统。Windows XP是一款由微软公司开发的操作系统,于2001年发布,因其稳定性...

    Node.js-git-js一个轻量级接口用于在任何node.js应用程序中运行git命令

    Git-js是针对Node.js环境设计的一个轻量级库,它提供了一个简单易用的接口,允许开发者在他们的Node.js应用中直接调用Git命令,无需离开JavaScript的舒适区。 ### Git-js核心特性 1. **轻量级**:Git-js的核心设计...

    Git for Windows 2017 最新版,Git-2.15.0

    Git是一个分布式版本控制系统,由Linux之父Linus Torvalds开发,用于管理软件源代码的版本变更。Git-2.15.0是该系统的一个特定版本,它包含了自早期版本以来的各种改进和新特性。 Git的核心特点包括: 1. 分布式:...

    git安装包git-2.34.0-64-bit.rar

    Git-2.34.0-64-bit.rar是一个包含Git的64位安装包,适用于Windows操作系统。这个压缩包中的主要文件是"Git-2.34.0-64-bit.exe",这是Git的可执行安装程序,用于在Windows上部署Git环境。 Git的核心功能包括版本控制...

    git压缩包下载git下载

    3. 提交(Commit):保存项目状态的快照,每次提交都有一个唯一的哈希值。 4. 差异(Diff):显示两个文件或提交之间的变化。 5. 合并(Merge):将两个分支的代码合并在一起。 6. 克隆(Clone):复制远程仓库到...

    Git GitExtensions KDiff3

    GitExtensions是一个图形化的Git客户端,它为Git提供了一个友好的用户界面,使得非命令行用户也能轻松地操作Git。GitExtensions-3.1.1.6049.msi是GitExtensions的3.1.1版本,包含了一些增强的功能,如可视化的工作区...

    linux系统安装git及git常用命令

    1 安装GIT 代码如下:$ sudo aptitude install git$ sudo aptitude install git-doc git-svn git-email git-gui gitk git软件包包含了大部分Git命令,是必装的软件包,第二行命令也是Git软件包,但是是单独发布的,...

    Keil配置Git教程

    随着软件开发变得越来越复杂,版本控制成为了软件开发过程中的一个基础和核心环节,特别是在团队协作开发时,其作用尤为关键。 描述中提到,“详细描述了如何在keil 开发环境中配置Git进行版本管理”,这说明了本文...

    git免安装版.zip

    Git Bash是一个模拟Linux命令行环境的工具,它为Windows用户提供了一个运行Git命令的平台。在Git Bash中,你可以执行常见的Git操作,如`git clone`(克隆远程仓库)、`git add`(将更改添加到暂存区)、`git commit`...

    Git原理及范例详解

    Git 是一个分布式版本控制系统,允许开发者在本地存储项目的所有版本记录,并且可以与远程仓库同步。Git 的核心思想是基于 snapshot,而不是基于差异(diff),这使得 Git 在版本控制方面具有很高的效率和可靠性。 ...

    同一台电脑上搭建GIT服务器和客户端

    在此过程中,我们需要使用 sudo apt-get install git 命令来安装 Git 软件,然后使用 sudo adduser git 命令来创建一个名为 git 的用户。 二、关于 Git 用户的创建和配置 在创建 Git 用户时,我们需要使用 adduser...

    学习git和gitbash使用的一些详细操作

    Git是一个分布式版本控制系统,它最初由Linus Torvalds在2005年创建用于管理Linux内核的开发。Git的目的是快速高效地处理从小型到大型项目的所有事务。Git不仅是一个版本控制工具,它更是一个内容管理系统或文件系统...

    GIT 压缩包 适用于压缩包式安装git

    总的来说,Git压缩包提供了一种无需安装程序的安装方式,尤其适用于那些不希望使用包管理器或者需要在无网络环境下安装Git的用户。掌握Git的使用不仅可以提升个人开发效率,也是团队协作中不可或缺的技能。

    Git在windows的使用

    仓库是Git存储所有版本信息的地方,每个提交都包含了对文件的一次变更,而分支则允许开发者在同一仓库中并行开发不同的功能。远程仓库则允许团队成员通过网络共享和同步代码。 Git的基本命令是掌握Git的关键: 1. ...

    GitHack-master

    GitHack-master是一个针对Git源码泄露的利用工具,主要用于帮助安全研究人员或开发者发现并利用`.git`目录泄漏的安全隐患。`.git`目录是Git版本控制系统的一部分,通常在项目根目录下,包含了项目的完整历史版本信息...

    Git的客户端+服务端Gitblit+Git clone

    1. 初始化仓库:使用`git init`在本地创建一个新的Git仓库。 2. 添加文件:`git add`将新文件或修改的文件添加到暂存区。 3. 提交更改:`git commit`将暂存区的更改保存到本地仓库,附带一条描述信息。 4. 查看状态...

    最新Git与Github首篇巨作课程 Git&Github极速入门与攻坚实战结合课程 一次搞定Git.txt

    最新的Git与Github巨作课程,课程内容主旨分成了Git&Github极速入门与攻坚实战课程两部分,可以理解为一个是课程的详细教学篇,和一个精华缩减的集合。Git与Github教程详细介绍了Git的工作机制,Git命令行的基础学习...

    git客户端离线安装包

    总的来说,Git客户端离线安装包是一个方便开发者在离线环境下安装Git的重要资源。通过安装并掌握Git,无论是个人还是团队,都能更好地管理源码软件项目,提升开发效率,并与全球的开发者社区,特别是通过GitHub,...

    Git离线rpm安装包

    在这个例子中,我们有一个名为 `git-package.tgz` 的压缩文件。使用 `tar` 命令来解压,具体命令为 `tar zxvf git-package.tgz`。`z` 参数表示使用gzip压缩,`x` 表示解压,`v` 表示详细模式,`f` 表示后面跟的是...

Global site tag (gtag.js) - Google Analytics