`
iaiai
  • 浏览: 2196334 次
  • 性别: 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年发布,因其稳定性...

    Git是一个开源的分布式版本控制系统 64位

    Git提供了强大的分支和合并功能,使得开发人员可以独立地在一个分支上工作,而不会影响主分支或其他人的工作。当一个功能开发完成或修复了一个bug,可以将分支合并回主分支,确保所有人的工作都能集成在一起。这种...

    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 GitExtensions KDiff3

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

    git压缩包下载git下载

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

    Git原理及范例详解

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

    Git在windows的使用

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

    Keil配置Git教程

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

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

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

    GitHack-master

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

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

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

    Git GUI操作流程

    Git GUI 是一个图形用户界面工具,它为Git版本控制系统提供了直观的交互式界面,使得开发者在处理Git操作时,无需直接使用命令行,也能轻松完成各种任务。在本文中,我们将详细探讨如何通过Git GUI进行从拉取代码到...

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

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

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

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

    Git 是一个分布式版本控制系统,用于管理代码版本和协作开发 下面是一个 Git 教程,covering the basics

    Git 是一个分布式版本控制系统,用于管理代码版本和协作开发。下面是一个 Git 教程,...git init:在当前目录下创建一个新的 Git 仓库。 git add .:将当前目录下的所有文件添加到暂存区。 git commit -m "initial com

    Git-1.9.0 git

    Git-1.9.0是Git版本控制系统的一个重要版本,Git是一种分布式版本控制系统,由Linux创始人林纳斯·托瓦兹创建,旨在提高软件开发中的版本管理和协作效率。Git以其高效、灵活和强大的特性在全球开发者中广泛应用,...

    (64位)Git-2.44安装包

    基本操作包括初始化一个新的Git仓库(`git init`),添加文件到暂存区(`git add`),创建提交(`git commit`),查看状态(`git status`),创建和切换分支(`git branch`和`git checkout`),以及与远程仓库交互...

Global site tag (gtag.js) - Google Analytics