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

发布时间:2025-12-10 19:23:51 浏览次数:4

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

使用jazzyViewPager 加载assets目录打造炫酷效果MainActivitypackagecom.need88.drawableround;importjava.io.IOException;importjava.io.InputStream;importjava.util.ArrayList;importandroid.app.Activity;importandroid.content.res.AssetManager;imp

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; } }

是否还在为Ide开发工具频繁失效而烦恼,来吧关注以下公众号获取最新激活方式。亲测可用!

为防止网络爬虫,请关注公众号回复”口令”

激活idea 激活CLion DataGrip DataSpell dotCover dotMemory dotTrace GoLand PhpStorm PyCharm ReSharper ReShaC++ Rider RubyMine WebStorm 全家桶 刷新

【正版授权,激活自己账号】:Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】:官方授权 正版激活 自己使用,支持Jetbrains家族下所有IDE…

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:andro><com.jfeinstein.jazzyviewpager.JazzyViewPager    xmlns:app="http://schemas.android.com/apk/res-auto"    android:    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:andro android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" >    <ImageView android: android:layout_width="match_parent" android:layout_height="match_parent" android:scaleType="fitXY" android:src="@drawable/a"/></LinearLayout>

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

需要做网站?需要网络推广?欢迎咨询客户经理 13272073477