我的项目是这样的:点击 图1 的item项,就打开对应的图2页面。这个是fragment做的,相信大家都知道。现在我要的效果就是,当点击图2左上角的返回按钮时,图2消失,显示图1,这个图2消失的过程不是闪一下就没了,而是要慢慢向右边滑动出去,请问这个该怎么实现? 图1: 图2: |
|
PendingIntent
|
|
???????? |
|
10分 |
/** * 切换Fragment * @param fragment * @param isFirst */ protected void change(Fragment fragment, boolean isFirst) { FragmentTransaction t = this.fragmentManager.beginTransaction(); setCustomAnimations(R.anim.push_left_in, R.anim.push_left_out, t); t.replace(R.id.container, fragment); if (!isFirst) { t.addToBackStack(null); } t.commit(); } R.anim.push_left_in: <?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android"> <translate android:fromXDelta="100%p" android:toXDelta="0" android:duration="800" /> </set> 上面是我写的,用法就是这样,具体的你再斟酌一下! |
你那不是替换吗!我要的是退出动画呀。 |
|
30分 |
简单的动画就可以实现了啊。针对你的问题粗略的写了个,你自己优化下。
public class MainActivity extends Activity { private ObjectAnimator outAnimator, inAnimator; @Override //你的两个布局 //监听动画过程 @Override // 如果要2个动画一起动,那么实现这个方法 @Override } // 如果要先让出动画完成后,再实现进动画;那么用这个方法 @Override } // 出动画.注意v.getWidth()是你布局的宽度,也可以说是你手机的屏幕宽度. private void inAnimator(View v) { |
你好,麻烦你先好好看看我想实现的效果图: |
|
晕,表情是怎么上去的。对了,上面的动画监听里面还可以添加渐变等等效果,也就是集成动画,不过有点取巧,呵呵,可以用AnimatorSet这个类去搞,里面有个animatorSet.playTogether(items);这个方法可以把你想要的动画全部加载进去。
顺便问句,你的项目是 本地,在线 双用的吗? |
|
你的效果就是类似Gallery的效果是吧?
|
|
view 由你自己指定啊。。。
|
|
目前还没有做在线的,效果跟viewpage差不多吧!但是左图里面本身就有一个了,现在实现的只有右图的进入动画,左图的一点效果都没有。 fragManage = MainActivity.this.getSupportFragmentManager(); FragmentTransaction transion = fragManage.beginTransaction(); FragmentInfoContent infocon = new FragmentInfoContent( MainActivity.this, play, musicName, main_top, scroll, cursor_layout, pager,transion); main_top.setVisibility(View.GONE); scroll.setVisibility(View.GONE); cursor_layout.setVisibility(View.GONE); pager.setVisibility(View.GONE); transion.setCustomAnimations(R.anim.push_left_in, R.anim.push_left_out); transion.replace(R.id.activity_lin_title, infocon); transion.addToBackStack(null); //transion.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN);// 设置动画效果 transion.commit(); 代码里的隐藏部分,是因为无论哪个界面都要看到背景图,所以两个view的背景都是透明的,这样一来左图的内容就先隐藏了,不然右图替换过来,还会看到左图的内容。 |
|
// 如果要2个动画一起动,那么实现这个方法
public void onAnimationStart(Animator animation) { // TODO Auto-generated method stub inAnimator.start(); } // 初始化动画 左图的初始化了没,监听器里面做,顺便说下,动画可以做成res目录下面的.xml文件。你可以先新建一个新文件来测试下,应该是没有问题的,如果还需要反向动画的话,那么在动画里面的参数改下就OK了。 outAnimator.addListener(new AnimatorListener() 可以放在public void outAnimator(View v) 方法里面。 |
|
你好,要不这样,我发给你一个我开始做的时候,写的一个类似的小demo,你帮我看看怎么实现好么? |
|
要做成,xml文件的话,需要在res 目录下新建文件夹animator,注意不是anim,关于这个你可以去找找资料。这里说太浪费时间了。呵呵。等过年放假的时候,我准备写几篇总结的博客,届时希望捧个场。
|
|
兄弟,你新建一个APP然后做两个布局,然后试验我给的代码,这个很简单啊。就是一个TranslationX而已。当然,里面还可以加上渐变效果,我现在也在做项目,呵呵,偷空上来看看的。加油!
|
|
晕,好啊,你把邮箱告诉我,我发给你,你帮我看怎么实现嘛,我很差的,你说那么多我都不太明白。 |
|
你的代码都不是fragment的呀!直接两个view跳转的,我的是fragment的 |
|
fragment 的布局文件 R.layout.XXX 至于底部那个东西,可以做个popupWindow来实现。
View viewIn = LayoutInflater.from(this).inflate(R.layout.XXX, null); //this指的是Context //R.layout.XXX 由你掌控,一般是子布局,适配器里面经常用到的啊。当然也有addView的时候。 android里面貌似除了4大组件 + Intent,像控件,布局这些都是View或ViewGroup.你项目里的布局文件.xml就是View.这个动画很简单了,你先把思路捋清楚吧。 |
|
你好!我也是遇到这个问题,请问你的问题解决了吗?怎么解决的?
|