我想在 View 寻呼机中滚动页面时放置动画(放大缩小、淡入淡出、3d 等)。我的代码如下。
我的第一个类:
public class ViewPagerMainActivity extends FragmentActivity implements
OnClickListener, OnPageChangeListener {
// all variable declare here
@SuppressLint("NewApi")
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getWindow().setFlags(
WindowManager.LayoutParams.FLAG_FULLSCREEN
| WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD,
WindowManager.LayoutParams.FLAG_FULLSCREEN
| WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD
);
setTheme(android.R.style.Theme_Light_NoTitleBar);
setContentView(R.layout.view_pager_main);
// other code here
}
private class MyPagerAdapter extends FragmentPagerAdapter {
public MyPagerAdapter(
android.support.v4.app.FragmentManager fragmentManager) {
super(fragmentManager);
}
@Override
public Fragment getItem(int pos) {
switch (pos) {
case 0:
return FirstFragment.newInstance("");
case 1:
return SecondFragment.newInstance("");
default:
return SecondFragment.newInstance("Default");
}
}
@Override
public int getCount() {
return 2; // return no of fragment created by us
}
}
@Override
public void onClick(View v) {
}
@Override
public void onPageScrollStateChanged(int arg0) {
// TODO Auto-generated method stub
}
@Override
public void onPageScrolled(int arg0, float arg1, int arg2) {
// TODO Auto-generated method stub
}
@Override
public void onPageSelected(int arg0) {
// TODO Auto-generated method stub
}
@Override
public void onBackPressed() {
}
}
第二个文件:
public class FirstFragment extends Fragment implements OnTouchListener {
// all variable decalre here
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
getActivity().setTheme(android.R.style.Theme_Light_NoTitleBar);
v = inflater.inflate(R.layout.sliding_lock_pager, container, false);
// other code here
return v;
}
public static FirstFragment newInstance(String text) {
FirstFragment f = new FirstFragment();
Bundle b = new Bundle();
b.putString("msg", text);
f.setArguments(b);
return f;
}
@Override
public boolean onTouch(View v, MotionEvent event) {
return false;
}
这里是第三个文件:
public class SecondFragment extends Fragment implements OnClickListener {
// all varible decalare here
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
getActivity().setTheme(android.R.style.Theme_Light_NoTitleBar);
View v = inflater.inflate(R.layout.password, container, false);
// other code here
// this method move to main pager
txtBack.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
((ViewPagerMainActivity)getActivity()).pager.setCurrentItem(0);
}
});
return v;
}
public static SecondFragment newInstance(String text) {
SecondFragment f = new SecondFragment();
Bundle b = new Bundle();
b.putString("msg", text);
f.setArguments(b);
return f;
}
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
}
我想在寻呼机滚动或调用 ((ViewPagerMainActivity)getActivity()).pager.setCurrentItem(0);
时放置动画,当时寻呼机滚动下一页时会显示动画,例如 zoomin-请任何人帮助我如何做到这一点。
最佳答案
您可以将 PagerTransformer 附加到 ViewPager :
mViewPager.setPageTransformer(false, new ViewPager.PageTransformer() {
@Override
public void transformPage(View page, float position) {
// do transformation here
}
});
您可以通过以下链接来帮助您:
http://developer.android.com/training/animation/screen-slide.html#pagetransformer
http://andraskindler.com/blog/2013/create-viewpager-transitions-a-pagertransformer-example/
关于Android使用 fragment 将动画放在页面滚动中的 View 寻呼机中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23240774/