设计一个android引导页面的动画,最好是透明渐变动画效果,大概样式就像APP微信精选那个引导页面那种样式,求大神帮忙给个Demo!
5条回答 默认 最新
- 关注
码龄 粉丝数 原力等级 --
- 被采纳
- 被点赞
- 采纳率
胖子爱你520 2015-08-14 07:43最佳回答 专家已采纳之前回复的都回复不了,现在重新再给你回复一遍吧,首先创建三个Fragment,我现在给你举一个例子:
public class WelcomeFragment1 extends Fragment { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); } @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { View view = inflater.inflate(R.layout.fragment_welcome1, null); return view; } }
下面是fragment对应的布局文件:
<?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:layout_width="match_parent" android:layout_height="match_parent" android:scaleType="centerCrop" android:src="@drawable/jpg_1" /> </LinearLayout>
同理,你自己新建另外两个Fragment和布局文件,下面是一个引导页GuideActivity:
package com.example.splashdemo; import java.util.ArrayList; import java.util.List; import com.nineoldandroids.view.ViewHelper; import android.os.Bundle; import android.support.v4.app.Fragment; import android.support.v4.app.FragmentActivity; import android.support.v4.app.FragmentManager; import android.support.v4.app.FragmentPagerAdapter; import android.support.v4.view.ViewPager; import android.support.v4.view.ViewPager.OnPageChangeListener; import android.util.Log; import android.view.View; public class GuideActivity extends FragmentActivity { private WelcomeFragment1 fragment1; private WelcomeFragment2 fragment2; private WelcomeFragment3 fragment3; private FragAdapter adapter; private ViewPager viewPager; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_guide); viewPager = (ViewPager) findViewById(R.id.viewpager); List<Fragment> fragments = new ArrayList<Fragment>(); fragment1 = new WelcomeFragment1(); fragment2 = new WelcomeFragment2(); fragment3 = new WelcomeFragment3(); fragments.add(fragment1); fragments.add(fragment2); fragments.add(fragment3); if (adapter == null) { adapter = new FragAdapter(getSupportFragmentManager(), fragments); viewPager.setAdapter(adapter); viewPager.setPageTransformer(true, new RotateDownPageTransformer()); }else{ adapter.notifyDataSetChanged(); } viewPager.setOnPageChangeListener(new OnPageChangeListener() { @Override public void onPageSelected(int arg0) { } @Override public void onPageScrolled(int arg0, float arg1, int arg2) { } @Override public void onPageScrollStateChanged(int arg0) { } }); } @Override protected void onResume() { super.onResume(); } public class FragAdapter extends FragmentPagerAdapter{ private List<Fragment> mFragments; public FragAdapter(FragmentManager fm,List<Fragment> fragments) { super(fm); mFragments = fragments; } @Override public Fragment getItem(int arg0) { return mFragments.get(arg0); } @Override public int getCount() { return mFragments.size(); } } public class RotateDownPageTransformer implements ViewPager.PageTransformer { private static final float ROT_MAX = 20.0f; private float mRot; public void transformPage(View view, float position) { Log.e("TAG", view + " , " + position + ""); if (position < -1) { // [-Infinity,-1) // This page is way off-screen to the left. ViewHelper.setRotation(view, 0); } else if (position <= 1) // a页滑动至b页 ; a页从 0.0 ~ -1 ;b页从1 ~ 0.0 { // [-1,1] // Modify the default slide transition to shrink the page as well if (position < 0) { mRot = (ROT_MAX * position); ViewHelper.setPivotX(view, view.getMeasuredWidth() * 0.5f); ViewHelper.setPivotY(view, view.getMeasuredHeight()); ViewHelper.setRotation(view, mRot); } else { mRot = (ROT_MAX * position); ViewHelper.setPivotX(view, view.getMeasuredWidth() * 0.5f); ViewHelper.setPivotY(view, view.getMeasuredHeight()); ViewHelper.setRotation(view, mRot); } // Scale the page down (between MIN_SCALE and 1) // Fade the page relative to its size. } else { // (1,+Infinity] // This page is way off-screen to the right. ViewHelper.setRotation(view, 0); } } } }
不过你这个时候还需要到网上下载一个jar包,nineoldAndroid.jar,这个jar包主要是兼容3.0以下的,还有上面使用的ViewHelper是依赖于这个包的,你可以用我给的代码试试,不懂的再问。
采纳该答案 已采纳该答案 专家已采纳评论解决 无用打赏举报微信扫一扫
分享评论登录 后可回复...
查看更多回答(4条)
报告相同问题?
提交
相关推荐 更多相似问题
- 2015-08-13 06:52回答 5 已采纳 之前回复的都回复不了,现在重新再给你回复一遍吧,首先创建三个Fragment,我现在给你举一个例子: ``` public class WelcomeFragment1 extend
- 2016-01-26 11:56回答 3 已采纳 取消viewpager预加载,重写一个基类fragment,判断该fragment是否显示,没显示就不加载界面。你百度,我手机端写代码费时,百度viewpager取消预加载,一大堆,都挺好懂得没有多少
- 2017-01-16 08:37回答 5 已采纳 你可以尝试从这几个方面处理一下: 1. 既然params.width是int类型的, 那么就不要使用ValueAnimator.ofFloat,直接使用ValueAnimator.ofInt, 避免
- 2021-12-31 11:37m0_65145685的博客 写在最后 由于本文罗列的知识点是根据我自身总结出来的,并且由于本人水平有限,无法全部提及,欢迎大神们能补充~ 将来我会对上面的知识点一个一个深入学习,也希望有童鞋跟我一起学习,一起进阶。 提升架构认知...
- 2021-05-27 04:55爱尔兰KEN的博客 一个真正Android使用SVG矢量图打造酷炫动效往往让人虎躯一震,话不多说,咱们先看看效果:这个效果我们需要考虑以下几个问题:1. 这是图片还是文字;2. 如果是图片该如何拿到图形的边沿线坐标,如果是文字呢?3. ...
- 2021-06-07 15:09权芜虞的博客 学习Android动画过程,参考了众大神的文章自己消化(见参考资料)整理的一篇笔记,仅作个人备忘。一、动画概况Frame Animation:帧动画,顺序播放事先做好的图像,是一种画面转换动画。图片过多、过大容易产生OOM。类...
- 2016-04-17 05:03回答 2 已采纳 首先你先宏定义你的N比如#define N 10或者在主函数里面声明const int N=10; ``` int i,j; int a[N][N]={0};
- 2017-11-13 18:30回答 10 已采纳 仔细看你第一张图的报错,第4行xml line #8 再看第一张图地下的caused by supportv7的包缺失了,你去网上找个v7的包弄进去。
- 2016-03-22 01:57回答 2 已采纳 系统拍照之后,接受到这个广播之后,上传即可。后者检查图片库,看是否有图片增加。
- 2018-12-04 17:33程序媛—潇潇的博客 一、Android 四种类型的animation javaCode动画类型 xml动画类型 描述 属性 AlphaAnimation alph 渐变透明 浮点型值: fromAlpha:动画起始时透明度 toAlpha:动画结束时透明度 ...
- 2021-12-05 18:11m0_64603929的博客 排名完全是根据 GitHub 搜索 Java 语言选择 (Best Match) 得到的结果, 然后过滤了跟 Android 不相关的项目, 所以排名并不具备任何官方效力, 仅供参考学习, 方便初学者快速了解当前一些流行的 Android 开源库。...
- 2022-01-24 12:43m0_66145060的博客 AndroidImageSlider 库开发者是代码家, 该库是为 ...RoundedImageView 一个快速支持图片圆角显示效果的库, 该库特点是能快速加载, 为了提高加载速度, 该库不用创建原始位图的副本, 不使用 clipPath, 不使用 setXfermode
- 2019-05-07 12:32回答 2 已采纳 可能是 gcc 编译工具的问题,目标机器是虚拟机还是实体机呢,安装的时候选择开发工具了吗? 参考看看这个:http://www.mamicode.com/info-detail-1663865.ht
- 2018-11-05 01:23回答 2 已采纳 最终的问题是quartz包和c3po包冲突了,更换别的版本c3po包,成功解决! 如果你使用的是maven工程,直接把c3p0的依赖删除,maven会自动找合适的jar包。
- 2015-04-09 09:47回答 3 已采纳 实现不是很难,如果你不考虑直接从底层实现的话,主要就是上下左右滑动,问度娘:github的开源项目,参考一下
- 2022-01-17 16:10wq221aas的博客 | 15. MPAndroidChart | ...ActionBarSherlock (不建议使用) | ActionBarSherlock 这个库是 JakeWharton 大神开发出来支持 Android3.0 以下版本的, 后来慢慢的 Google 也提供了 AppCompat 库来支持 Android3.0
- 2018-07-08 21:26谦行的博客 总结了 Tween动画,属性动画,帧动画,CircularReveal,Activity转场动画,5.0新转场动画, 5.0转场动画分为Explode、Slide、Fade、Share四种模式,矢量动画以及多种动画效果以及案例。
- 2018-06-28 16:19少问,多查,靠自己的博客 支持:https://www.cnblogs.com/whoislcj/p/5738478.html translationX的效果: protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout....
- 2017-03-30 02:23回答 2 已采纳 ``` $.ajax({ url: url, type: "post", beforeSend:function(){ $(".div")
- 2022-01-20 21:36mChenys的博客 阴影只是一个狭义的说法,实际上也包括发光等效果;Android 也供了强大的渐变功能,渐变能为物体带来更真实的质感,比如可以用渐变绘制一颗五子棋或一根金属圆棒;位图运算就更有趣了,Android 为 Bitmap 的运算供了...
- 没有解决我的问题, 去提问