Android ViewPager 動畫效果,androidviewpager

來源:互聯網
上載者:User

Android ViewPager 動畫效果,androidviewpager

找到個不錯的開源項目:https://github.com/jfeinstein10/JazzyViewPager

Android ViewPager 動畫效果

 

適配器:(這個是viewpager的每一項都添加了onclick事件的)

package com.example.jaazy;import java.util.ArrayList;import android.support.v4.view.PagerAdapter;import android.view.View;import android.view.View.OnClickListener;import android.view.ViewGroup;/** * Create by LanYan on 2014.04.24 * This is a adapter */public class ViewPagerAdapterOnClick extends PagerAdapter {private ArrayList<View> views;private ViewPageOnClick callback;private JazzyViewPager pager;public ViewPagerAdapterOnClick(JazzyViewPager pager,ArrayList<View> views,ViewPageOnClick callback) {this.setViews(views);this.callback=callback;this.pager=pager;}public void setViews(ArrayList<View> views) {if (views != null)this.views = views;elsethis.views = new ArrayList<View>();}public void changeItem(ArrayList<View> views) {this.setViews(views);notifyDataSetChanged();}@Overridepublic int getItemPosition(Object object) {// TODO Auto-generated method stubreturn POSITION_NONE;}@Overridepublic int getCount() {// TODO Auto-generated method stubreturn views.size();}@Overridepublic boolean isViewFromObject(View arg0, Object arg1) {// TODO Auto-generated method stubreturn arg0 == arg1;}@Overridepublic void destroyItem(ViewGroup container, int position, Object object) {View v = views.get(position);container.removeView(v);}public void removeUpdate(ViewGroup container){container.removeAllViews();}@Overridepublic Object instantiateItem(ViewGroup container, final int position) {View v = views.get(position);v.setOnClickListener(new OnClickListener() {public void onClick(View v) {// TODO Auto-generated method stubcallback.callbackOnClickItem(position);}});container.addView(v);pager.setObjectForPosition(v, position);return v;}public interface ViewPageOnClick{void callbackOnClickItem(int position);}}
activity:

import java.util.ArrayList;import android.app.Activity;import android.os.Bundle;import android.view.View;import android.view.ViewGroup.LayoutParams;import android.widget.ImageView;import android.widget.Toast;import com.example.jaazy.JazzyViewPager.TransitionEffect;import com.example.jaazy.ViewPagerAdapterOnClick.ViewPageOnClick;public class MainActivity extends Activity implements ViewPageOnClick{private JazzyViewPager pager;private ViewPagerAdapterOnClick adapter;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);setupJazziness(TransitionEffect.Stack);}private void setupJazziness(TransitionEffect stack) {// TODO Auto-generated method stubpager=(JazzyViewPager)findViewById(R.id.jazzy_pager);adapter=new ViewPagerAdapterOnClick(pager, getViews(),this);pager.setAdapter(adapter);pager.setPageMargin(5);//壓棧方式pager.setTransitionEffect(TransitionEffect.Stack);//立體內部進出//pager.setTransitionEffect(TransitionEffect.CubeIn);//立體凸出//pager.setTransitionEffect(TransitionEffect.CubeOut);//左右擠壓//pager.setTransitionEffect(TransitionEffect.Accordion);//水平翻頁//pager.setTransitionEffect(TransitionEffect.FlipHorizontal);//垂直翻頁//pager.setTransitionEffect(TransitionEffect.FlipVertical);//上扇形擺入//pager.setTransitionEffect(TransitionEffect.RotateDown);//下扇形擺入//pager.setTransitionEffect(TransitionEffect.RotateUp);//標準//pager.setTransitionEffect(TransitionEffect.Standard);//選項卡(卡片形式)///pager.setTransitionEffect(TransitionEffect.Tablet);//zoom in//pager.setTransitionEffect(TransitionEffect.ZoomIn);//zoom out//pager.setTransitionEffect(TransitionEffect.ZoomOut);}private ArrayList<View> getViews() {// TODO Auto-generated method stubArrayList<View> list=new ArrayList<View>();ImageView i=new ImageView(this);LayoutParams params=new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT);i.setLayoutParams(params);i.setBackgroundResource(R.drawable.a);ImageView i2=new ImageView(this);i2.setLayoutParams(params);i2.setBackgroundResource(R.drawable.b);ImageView i3=new ImageView(this);i3.setLayoutParams(params);i3.setBackgroundResource(R.drawable.c);ImageView i4=new ImageView(this);i4.setLayoutParams(params);i4.setBackgroundResource(R.drawable.e);list.add(i);list.add(i2);list.add(i3);list.add(i4);return list;}@Overridepublic void callbackOnClickItem(int position) {// TODO Auto-generated method stubToast.makeText(this, "position:"+position, 1000).show();}}
JazzyViewPager內建動畫枚舉11中,如需其他動畫,自己添加即可


聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.