使用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万+

别再为淘宝滑块发愁了!一个Python脚本自动获取x5sec cookie的保姆级教程

本文提供了一套完整的Python自动化解决方案,帮助开发者轻松应对淘宝滑块验证码问题。通过模拟浏览器行为、精准识别滑块缺口位置和生成拟人化移动轨迹,脚本能够自动获取关键的x5sec cookie,显著提升爬虫效率。教程涵盖环境配置、验证机制分析、代码实现及反检测策略,是解决淘宝滑块验证的实用指南。

weixin_30300225的博客 576

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万+

软件工程案例教程·韩万江【课后习题】

!!!!

weixin_57858263的博客 6419

【达梦8】多实例监视集群的部署测试

确认监视器具有状态确认和自动接管两个功能。在数据守护系统的故障自动切换模式下,必须部署一个确认监视器,否则在出现数据库故障时,会导致数据库服务中断。DM 提供了两种确认监视器的配置形式,分别为单实例和多实例。但是当单实例确认监视器故障时,无法继续进行集群的故障自动接管和备库故障确认,影响正常使用,故提供了多实例确认监控器来进一步提高集群的高可用性。在多实例确认监视器中,只有一个实例作为确认监视器提供服务,其它实例作为备库存在而不提供服务。

weixin_45335507的博客 1675

JazzyViewPager开源项目的简析及使用

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

weixin_30849403的博客 48万+

2024年物联网嵌入式最新嵌入式期末大作业——家用智能晾衣杆,初面蚂蚁金服

在家用智能晾衣杆中,用户可以根据自身的需要,切换手动和自动两个模式。天气对应的接口对应心知天气的天气图,可以下载后:调整尺寸->调整透明度->用画图工具保存为单色位图->提取出点阵信息(如我用的zimoV2.2软件),将点阵信息,存到数组里,根据weather的信息,调用display.drawBitmap()方法就能打印出对应的天气了。该库依赖于,将他们导入后,设置屏幕的主从关系,片选信号和数据,时钟信号等引脚后,就设置好屏幕的驱动。

2401_85013604的博客 1248

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

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

天空哥的专栏 1352

matlab kwave模拟超声换能器学习笔记

kwave模拟超声换能器的学习笔记,从零开始造车轮

SolvingMaster的博客 3201

Python基础语法与最佳实践【python基础篇】

本文全面介绍了Python基础语法与最佳实践,涵盖变量与数据类型、控制流、函数、模块与包等核心概念。通过实际代码示例展示了条件语句、循环结构、函数定义及模块导入的基本用法。在最佳实践部分,重点讲解了PEP 8代码风格规范、异常处理技巧、列表推导式、上下文管理器、文档字符串编写以及enumerate和zip的高效使用。这些内容既适合Python初学者掌握基础语法,也能帮助有经验的开发者编写更规范、高效、可维护的代码。文章强调遵循Python官方推荐实践,通过合理运用语言特性提升代码质量。

博客 1977

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

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

weixin_30725315的博客 598

SAP_ABAP_MM_BAPI清单案例教程——采购发票校验/预制_BAPI_INCOMINGINVOICE_PARK_MIRO

SAP ABAP BAPI_INCOMINGINVOICE_PARK BAPI 采购发票预制 采购发票校验 代码模版

java_zhong1990的专栏 1964

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

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

文哥 7214

使用静态库在嵌入式系统中进行开发

静态库是一种包含预编译对象代码的文件,它可以与应用程序链接在一起,并在编译时将库的代码复制到最终的可执行文件中。静态库是包含预编译对象代码的文件,可以与应用程序链接在一起,并在编译时将库的代码复制到最终的可执行文件中。需要注意的是,由于嵌入式系统的资源限制,开发人员应该仔细选择需要包含在静态库中的功能,并避免引入不必要的依赖关系。需要注意的是,由于嵌入式系统的资源限制,开发人员应该仔细选择需要包含在静态库中的功能,并避免引入不必要的依赖关系。的静态库文件,可以在嵌入式系统的应用程序中使用它了。

ZrElixir的博客 205

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

android JazzyViewPager

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

u010129251的专栏 3万+

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

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万+

数学建模模型总结

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

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

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、付费专栏及课程。

余额充值