使用jazzyViewPager 加载assets目录打造炫酷效果

JazzyViewPager.zip JazzyViewPager介绍: 实现多种页面切换方式的ViewPager,包括淡入淡出、翻页、放大缩小、旋转等等11种切换方式。   测试环境: Eclipse 4.2, Android 3.0 以上。 注意:测试环境并不代表适用环境。   效果图: 立即下载

MainActivity

package com.need88.drawableround;

import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;

import android.app.Activity;
import android.content.res.AssetManager;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Matrix;
import android.os.Bundle;
import android.view.LayoutInflater;

import com.jfeinstein.jazzyviewpager.JazzyViewPager;
import com.jfeinstein.jazzyviewpager.JazzyViewPager.TransitionEffect;

public class MainActivity extends Activity {

    private JazzyViewPager jazzyViewPager;
    private LayoutInflater inflater;
    private ArrayList<Bitmap> bms;
    private String[] picNamelist;
    private BitmapFactory bitmapFactory;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
//      自定义Drawable 圆角图片 
//      Bitmap bitmap  =  BitmapFactory.decodeResource(getResources(), R.drawable.a);
//      RoundImageDrawable drawable = new RoundImageDrawable(bitmap);
        initView();
        initDate();

        /**
         * 添加动画效果,可以设置很多动画效果。如:
         * Standard
         * Tablet
         * CubeIn
         * CubeOut
         * FlipVertical
         * FlipHorizontal
         * Stack
         * ZoomIn
         * ZoomOut
         * RotateUp
         * RotateDown
         * Accordion
         * 
         * 下面是可以通过字符串来产生动画对象的例子:
         * TransitionEffect effect = TransitionEffect.valueOf("Tablet");
         * setupJazziness(effect);
         */

        jazzyViewPager .setTransitionEffect(TransitionEffect.CubeOut);

        jazzyViewPager.setPageMargin(40);//两个页面之间的间距 
        jazzyViewPager.setFadeEnabled(true);//淡入浅出 效果 
        jazzyViewPager.setAdapter(new MyAdapter(this, bms,jazzyViewPager));
        jazzyViewPager.setOnPageChangeListener(null);//可以监听page的改变

    }


    private void initDate() {
        bitmapFactory = new BitmapFactory();
        bms = new ArrayList<Bitmap>();
        AssetManager assetManager = getAssets();
        Bitmap  bitmap;
        try {
            picNamelist = assetManager.list("");

            for(String picName:picNamelist){
                InputStream is = assetManager.open(picName);
                bitmap = bitmapFactory.decodeStream(is);
                bitmap = zoomImage(bitmap, 500, 500);

                bms.add(bitmap);
            }


        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }


    }


    private void initView() {
        inflater = getLayoutInflater();
        jazzyViewPager = (JazzyViewPager) findViewById(R.id.jazzyViewPager);

    }


    public static Bitmap zoomImage(Bitmap bgimage, double newWidth, 
            double newHeight) { 
    // 获取这个图片的宽和高 
    float width = bgimage.getWidth(); 
    float height = bgimage.getHeight(); 
    // 创建操作图片用的matrix对象 
    Matrix matrix = new Matrix(); 
    // 计算宽高缩放率 
    float scaleWidth = ((float) newWidth) / width; 
    float scaleHeight = ((float) newHeight) / height; 
    // 缩放图片动作 
    matrix.postScale(scaleWidth, scaleHeight); 
    Bitmap bitmap = Bitmap.createBitmap(bgimage, 0, 0, (int) width, 
                    (int) height, matrix, true); 
    return bitmap; 
} 


}

MyAdapter

* 注意mJazzyViewPager.setObjectForPosition(view, position); 一定要加上,否则不会出现效果,其他和普通ViewPager写法一致 *

package com.need88.drawableround;

import java.util.ArrayList;

import com.jfeinstein.jazzyviewpager.JazzyViewPager;

import android.content.Context;
import android.graphics.Bitmap;
import android.support.v4.view.PagerAdapter;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;

public class MyAdapter extends PagerAdapter{

    private Context mContext;
    private ArrayList<Bitmap> bitmaps;
    private JazzyViewPager mJazzyViewPager;
    public MyAdapter(Context context,ArrayList<Bitmap> bms,JazzyViewPager viewPager){
        this.mContext = context;
        this.bitmaps = bms;
        this.mJazzyViewPager = viewPager;
    }


    @Override
    public int getCount() {

        return Integer.MAX_VALUE;
    }

    @Override
    public boolean isViewFromObject(View arg0, Object arg1) {
        /**
         * true: 表示不去创建,使用缓存  false:去重新创建
         * view: 当前滑动的view
         * object:将要进入的新创建的view,由instantiateItem方法创建
         */

        return arg0 == arg1;
    }

    @Override
    public Object instantiateItem(ViewGroup container, int position) {
        View view = View.inflate(mContext, R.layout.list_item, null);
        ImageView imageView = (ImageView) view.findViewById(R.id.image);
        imageView.setImageBitmap(bitmaps.get(position%bitmaps.size())); //

        container.addView(view);  //一定不能少,将view加入到viewPager中


        //=============================== 实现效果重点 
         //这句话必须要写,按不同的位置添加视图
        mJazzyViewPager.setObjectForPosition(view, position);   
        return view;
    }

    @Override
    public void destroyItem(ViewGroup container, int position, Object object) {
        container.removeView((View) object);
    }


}

布局

activity_main.xml

<LinearLayout
    android:orientation="horizontal"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    xmlns:android="http://schemas.android.com/apk/res/android">

<com.jfeinstein.jazzyviewpager.JazzyViewPager
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:id="@+id/jazzyViewPager"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

</com.jfeinstein.jazzyviewpager.JazzyViewPager>
</LinearLayout>

list_item.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <ImageView 
        android:id="@+id/image"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:scaleType="fitXY"
        android:src="@drawable/a"/>


</LinearLayout>

asset目录下面放置的图片由于过大,注意压缩一下,否则容易出现 内存溢出

JazzyViewPager.rar 源码参考,欢迎下载 立即下载

相关推荐

JazzyViewPager

JazzyViewPager介绍: 实现多种页面切换方式的ViewPager,包括淡入淡出、翻页、放大缩小、旋转等等11种切换方式。

Android 顶部轮播 JazzyViewPager 改变滑动速度

github上有个顶部轮播的开源项目JazzyViewPager-master,图片切换动画是手动控制的,利用定时+setCurrentItem方法可以实现自动切换,但是会出现一个问题,切换过程中的滑动速度特别快,并且这个速度不能更改,是写死的,经查找资料,可以用反射实现。先列出正确做法,然后再记录下我开始时的错误做法。 首先重写Scroller: package com.yy.my.util

wblyuyang的专栏 3万+

【LLM】ms-Swift框架下SFT与GRPO协同优化的高效训练策略

本文深入探讨了ms-Swift框架下监督微调(SFT)与群组相对策略优化(GRPO)的协同训练策略,提升大型语言模型(LLM)的性能与效率。通过创新的架构设计和两阶段训练流程,结合GRPO的群组奖励估计与动态基线调整技术,显著优化了数学推理等任务的准确率。文章还分享了计算资源高效利用和参数调优的实战经验,为LLM训练提供了实用指导。

green的博客 994

Android JazzyViewPager

JazzyViewPager: package com.itau.jingdong.widgets.jazzviewpager; import java.util.HashMap; import java.util.LinkedHashMap; import android.content.Context; import android.content.res.TypedAr...

weixin_33939380的博客 53万+

从零构建PEMFC仿真模型:MATLAB/Simulink中的模块化拆解与系统集成

本文详细介绍了如何在MATLAB/Simulink环境中从零构建质子交换膜燃料电池(PEMFC)仿真模型,包括电化学模型、气体供应系统和热管理系统的模块化实现。通过多物理场耦合技巧和系统集成策略,帮助工程师和研究者高效开发PEMFC控制策略,优化性能并实现实时仿真。

weixin_29294975的博客 361

【技术实战】SeaTunnel 实现 HTTP 到 Doris 数据同步的配置优化与问题解决

本文分享了使用SeaTunnel实现HTTP数据源到Doris数仓同步的实战经验。详细解析了从环境搭建、核心配置到生产部署的全流程,重点针对数据类型映射、分页拉取、依赖冲突等典型问题提供了解决方案,并给出了连接参数调优、错误处理等进阶优化技巧,帮助开发者构建稳定高效的数据同步管道。

gan8painter的博客 754

JazzyViewPager开源项目的简析及使用

JazzyViewPager是一个重写的ViewPager,能是ViewPager滑动起来更加的炫酷。 开源地址:https://github.com/jfeinstein10/JazzyViewPager 使用的项目如下: JazzyViewPager 组件类 package com.hsx.test.jazzy; import java.util.HashMap...

weixin_30849403的博客 48万+

LC与RC滤波电路实战对比:从原理到选型指南

本文深入对比了LC与RC滤波电路的核心原理与实战应用。LC滤波利用电感与电容的无损能量搬运,适合高频、大电流电源滤波,效率高但需注意谐振风险;RC滤波通过电阻消耗能量实现滤波,结构简单、成本低,适用于低频信号处理或小电流供电场景。文章提供了从工作原理、性能维度到具体选型的完整指南,帮助工程师根据项目需求(如频率范围、负载电流、效率)做出精准选择。

weixin_29240711的博客 499

Android开源项目第一篇——个性化控件(View)篇

 本文为那些不错的Android开源项目第一篇——个性化控件(View)篇,**主要介绍Android上那些不错个性化的View,包括ListView、ActionBar、Menu、ViewPager、Gallery、GridView、ImageView、ProgressBar及其他如Dialog、Toast、EditText、TableView、Activity Animati

天空哥的专栏 1352

PADS VX2.7学习记录06-PADS Router软件功能操作

PADS VX2.7学习记录06-PADS Router软件功能操作

qq_31444421的博客 7862

【OTDR曲线工具箱】04 批量生成sor文件

软件下载地址:http://120.78.150.214:9999/isora.zip 通过一个测试数据sor文件,批量生成多个测试文件(基于Bellcore GR196及SR-4731标准)。主要考虑哪些问题: 1、sor测试是否符合要求(主要是衰减系数) 2、多个文件的创建时间 3、文件必须随机处理,不要看省去一模一样。 来说说怎么操作的 第一步:选择参考曲线 参考曲线的选择由两种方法:从文件中导入、从曲线库中选择。 其中曲线库分为公共库和个人库两种,平时浏览的sor文件都可以加载到库中。 第二步

夜晚是传说的博客 5275

Android 自定义 ViewPager 打造千变万化的图片切换效果

转载请标明出处:http://blog.youkuaiyun.com/lmj623565791/article/details/38026503记得第一次见到ViewPager这个控件,瞬间爱不释手,做东西的主界面通通ViewPager,以及图片切换也抛弃了ImageSwitch之类的,开始让ViewPager来做。时间长了,ViewPager的切换效果觉得枯燥,形成了审美疲劳~~我们需要改变,今天教大...

weixin_30725315的博客 598

Python爬虫实战:股票历史数据抓取与量化回测全流程详解

我们以**东方财富网(eastmoney.com)和雪球网(xueqiu.com)**为主要目标,演示如何爬取A股历史行情。最常用的HTTP请求库,简单易用,适合静态页面数据请求。本文详细介绍了从股票历史数据抓取到简单回测的完整流程,代码示例基于最新技术,结构清晰,适合初学者和进阶者学习量化投资实战。希望对你入门Python爬虫和量化交易有所帮助!

2201_76125261的博客 1782

自定义View(三)---分析JazzViewPager

一、概述JazzViewPager是什么?它其实是一种自定义View,继承ViewPager,普通v4包提供的ViewPager只能完成一些2d,的效果,如果想要完成更加酷的效果肯定需要我们自己设置(动画)。二、Demo例子xml文件:<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmln

文哥 7214

SAP_SD模块销售开票计划预收款系统配置及前台操作说明

在 SAP SD 中,开票计划(Billing Plan)是一种允许根据时间节点或里程碑对销售订单进行分期开票的功能。其中最常见的一种应用就是预收款(Down Payment Billing),即在销售订单中直接定义某个百分比或金额作为预收款,系统在开票时自动生成预收账单。大额合同或长期项目型销售(先收 20%,交货前收 30%,交货后收 50%)。分期付款模式(分阶段收款)。必须预收款才能安排生产或交货的业务。后台路径:SPRO—销售与分享—销售—销售凭证—销售凭证项目—定义项目类别。

我小时候很黑的博客 1409

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

android JazzyViewPager

1.需要导入的开源库   2. 使用方法   JazzyViewPager

u010129251的专栏 3万+

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

ViewPager实现动画从入门到精通(二)---JazzyViewPager使用

今天我们一起学习GutHub上一个特别强大的开源库JazzyViewPager,顾名思义,首先它是由ViewPager 的功能,更重要的是它的动画功能。官网是这样解释的: An easy to use ViewPager that adds an awesome set of custom swiping animations. Just change your ViewPagers t

nkdwslsd的专栏 6万+

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

Android常用开源项目

from: http://xfenglin.com/a/12007052025.html Android开源项目第一篇——个性化控件(View)篇   包括ListView、ActionBar、Menu、ViewPager、Gallery、GridView、ImageView、ProgressBar、TextView、其他 Android开源项目第二篇——工具库篇   包括

BLUE BOX 425

通过JazzyViewPager来实现Fragment页面间的动画切效果

JazzyViewPager 开源项目地址: https://github.com/jfeinstein10/JazzyViewPager 其实实现它还是蛮简单的,有两个关键点,一是使用扩展FragmentPagerAdapter,二是重写instantiateItem,isViewFromObject这两个方法,如果仅仅扩展FragmentPagerAdapter的话,动画效果则会不起作用。...

weixin_30649859的博客 3578

JazzyViewPager加FragmentTabHost实现多样式滑动App的基本布局

简要:之前看过很多文章实现Fragment和ViewPager的结合使用,这样就可以实现滑动的Fragment。但是 JazzyViewPager加FragmentTabHost可以说是一个升级版,JazzyViewPager增加了ViewPager的切换效果,FragmentTabHost更加的灵活。注意事项已经在代码里注释很详细了,本人能力有限,错误之处请大家多多指正,在此谢谢! 要点:Fr

玖 1万+

JazzyViewPager:让您的Android视图滑动充满活力

JazzyViewPager:让您的Android视图滑动充满活力 JazzyViewPager An easy to use ViewPager that adds an awesome set of custom swiping animations. Just change your ViewPagers to J...

gitblog_00142的博客 611

用开源项目JazzyViewPager实现ViewPager切换动画

  JazzyViewPager这个项目可以让viewpager有各种绚丽的动画,而且还可以自由扩展。但从官网下载的lib导入时会出现找不到视图的问题,不知道是不是我人品不行,所以我就自己写了lib。总之,本篇就是来讲这些可以有华丽动画的viewpager。 JazzyViewPager项目地址:https://github.com/jfeinstein10/JazzyViewPager   ...

weixin_34112208的博客 3155

android viewpager activity切换动画,Android 自定义 ViewPager 打造千变万化的图片切换效果...

4、JazzyViewPager的使用其实上面的实现就是github上JazzyViewPager的源码,用法不用说了,就是我们的MainActivity,它内置了大概10来种效果,我们可以通过代码或者布局上面设置动画效果~~我们上面的例子效果,它叫做Stack;使用JazzViewPager的代码:其实基本一样~~最后也会贴上JazzyViewPager的源码的下载MainActivitypac...

weixin_26875543的博客 1336

在JazzyViewPager中调用其它layout布局xml并使用

开源地址:https://github.com/jfeinstein10/JazzyViewPager 发现网上的例子使用的是直接创建的一个TextView来做的。但是实际上使用,不可能只有这一个控件。 下面是我的实现方式,如果大家有更好的方法,麻烦告之。不胜感激~~~ 在自定义的 MainAdapter extends PagerAdapter  + public Object inst...

weixin_30500105的博客 900

GitHub上史上最全的Android开源项目分类汇总

GitHub上史上最全的Android开源项目分类汇总 庞哈哈哈12138 0.5 2017.07.11 11:22* 字数 20987 阅读 14164评论 5喜欢 278 太长了,还是转载吧... 今天在看博客的时候,无意中发现了@Trinea在GitHub上的一个项目Android开源项目分类汇总,由于类容太多了,我没有一个个完整地看完,但是里...

weixin_30678349的博客 3269

Android 深入ViewPager补间动画,实现类京东商城首页广告Banner切换效果

如有转载,请声明出处: 时之沙:http://blog.youkuaiyun.com/t12x3456 某天看到京东商城首页的滑动广告的Banner,在流动切换的时候有立体的动画效果,感觉很有意思,然后研究了下如何实现. 废话不多说,接下来我会讲述如何实现这种效果,以及如何根据需求自定义出新的动画效果进行扩展实现. 首先还是看一下京东商城上的效果: 像一般做这种效果怎么办呢?我的建议还是先在gith...

445822357 338
上一篇: Http请求工具类 httputil
下一篇: 加速Android Studio/Gradle构建
阿里安
博客等级 码龄13年 79粉丝 44原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值