不明白如何使用动画与adapterViewFlipper [英] Don't understand how to use animation with adapterViewFlipper

查看:548
本文介绍了不明白如何使用动画与adapterViewFlipper的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我不知道如何使用动画与adapterViewflipper。
我在API13,我在一个片段使用adapterViewFlipper。

I don't understand how to use animation with adapterViewflipper. I'm in API13, and I use an adapterViewFlipper in a Fragment.

因此​​,在我的XML文件中我只有:

So in My xml file I only have:

        <AdapterViewFlipper
            android:id="@+id/avfPicturesSite"
            android:layout_width="match_parent"
                android:layout_height="300dp"
                android:background="@drawable/gradientbackground"
             >

        </AdapterViewFlipper>

和我在动态创建getView ImageView的()。

and I dynamically create ImageView in getView().

@Override
public View getView(int position, View convertView, ViewGroup parent) {
    View view = null;

    if (convertView == null) {
        final ViewHolder viewHolder = new ViewHolder();
        view = new ImageView(context);
        viewHolder.img = (ImageView) view;
        view.setTag(viewHolder);
    } else {
        view = convertView;
    }


    ViewHolder viewHolder = (ViewHolder)view.getTag();

    viewHolder.img.setImageURI(getItem(position));

    return view;
}

我浏览图片的按钮,我尝试设置动画。似乎sitePicturesFlipper.setInAnimation(上下文的背景下,INT RESOURCEID)正在等待AnimatorSet。

I browse images with buttons where I try to set the animations. It seems that sitePicturesFlipper.setInAnimation(Context context, int resourceID) is waiting for an AnimatorSet.

    nextSitePicture.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View arg0) {

            //sitePicturesFlipper.setInAnimation(R.animator.right_in);
            sitePicturesFlipper.setInAnimation(getActivity(), R.anim.left_in);
            sitePicturesFlipper.setOutAnimation(getActivity(), R.anim.right_out);
            sitePicturesFlipper.showNext();
        }
    });

和动画师的声明这样:

left_in.xml

left_in.xml

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
     android:shareInterpolator="false" >
    <translate android:duration="5000" android:fromXDelta="-100%" android:toXDelta="0%"/>
    <alpha android:duration="5000" android:fromAlpha="0.0" android:toAlpha="1.0" />
 </set>

right_out.xml

right_out.xml

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
    android:shareInterpolator="false" >
    <translate android:duration="5000" android:fromXDelta="0%" android:toXDelta="100%"/>
    <alpha android:duration="5000" android:fromAlpha="1.0" android:toAlpha="0.0" />
</set>

但是,当我按一下按钮,我得到一个RuntimeException未知的动画名称:翻译

But when I click on the button, I get a RuntimeException Unknown animator name: translate!

我也试过用ObjectAnimator代替,这样的:

I also tried to use ObjectAnimator instead, like that:

    nextSitePicture.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View arg0) {

            sitePicturesFlipper.setInAnimation(getActivity(), R.animator.left_in);
            sitePicturesFlipper.setInAnimation(getActivity(), R.animator.right_out);
            sitePicturesFlipper.showNext();
        }
    });

和XML文件是:

and the xml files are:

left_in2.xml

left_in2.xml

<?xml version="1.0" encoding="utf-8"?>
<set>
<objectAnimator xmlns:android="http://schemas.android.com/apk/res/android"
                android:interpolator="@android:anim/accelerate_decelerate_interpolator"
                android:propertyName="yFraction"
                android:valueType="floatType"
                android:valueFrom="-1"
                android:valueTo="0"
                android:duration="600"/>
</set>

right_out2.xml:

right_out2.xml:

<?xml version="1.0" encoding="utf-8"?>
<set>
<objectAnimator xmlns:android="http://schemas.android.com/apk/res/android"
                android:interpolator="@android:anim/accelerate_decelerate_interpolator"
                android:propertyName="yFraction"
                android:valueType="floatType"
                android:valueFrom="0"
                android:valueTo="1"
                android:duration="600"/>
</set>

但在这种情况下,我得到java.lang.ClassCastException:android.animation.AnimatorSet不能转换为android.animation.ObjectAnimator

but in that case I get java.lang.ClassCastException: android.animation.AnimatorSet cannot be cast to android.animation.ObjectAnimator

所以我不明白设置和正确使用它,这是相当困难的使用adapterViewFlipper在互联网上,除了在泰国发现的例子,但我不是很舒服的泰文...

So I don't understand to set and use it correctly and it's quite difficult to find example using adapterViewFlipper on Internet, except in Thai, but I'm not very comfortable with Thai language...

那么,如何与adapterViewFlipper用动画?

So, how to use animation with adapterViewFlipper?

推荐答案

好了,我终于找到了 ObjectAnimator adapterViewFlipper 宣布动画的方式分辩。
无论如何,它不喜欢的标签&LT;设置>和&LT;/设置>至少我写了他们。我怎么没发现申报财产的几个动画。我承认我仍然有问题,要真正了解Android文档...

Well, I finally found that ObjectAnimator is the rigth way to declare an animation with adapterViewFlipper. Anyway, it doesn't like the tags "<"set">" and "<"/set">" at least as I wrote them. And I didn't find how to declare several property animations. I admit that I still have problems to really understand Android documentation...

等待的相关信息,如果有人有关于它的想法。

Waiting for infos if someone has ideas about it.

因此​​,要解决第一个问题我有,一套完整ObjectAnimator的图像左,右的adapterViewFlipper是滑动:

So, to solve the first problem I had, a complete set of ObjectAnimator to slide images left and right in an adapterViewFlipper is:

left_in.xml,在动画文件中声明

left_in.xml, declared in animator folder

<objectAnimator xmlns:android="http://schemas.android.com/apk/res/android"
            android:interpolator="@android:anim/accelerate_decelerate_interpolator"
            android:propertyName="x"
            android:valueType="floatType"
            android:valueFrom="-1500"
            android:valueTo="0"
            android:duration="600"/>

right_out.xml

right_out.xml

<objectAnimator xmlns:android="http://schemas.android.com/apk/res/android"
            android:interpolator="@android:anim/accelerate_decelerate_interpolator"
            android:propertyName="x"
            android:valueType="floatType"
            android:valueFrom="0"
            android:valueTo="1500"
            android:duration="600"/>

right_in.xml

right_in.xml

<objectAnimator xmlns:android="http://schemas.android.com/apk/res/android"
            android:interpolator="@android:anim/accelerate_decelerate_interpolator"
            android:propertyName="x"
            android:valueType="floatType"
            android:valueFrom="1500"
            android:valueTo="0"
            android:duration="600"/>

left_out.xml

left_out.xml

<objectAnimator xmlns:android="http://schemas.android.com/apk/res/android"
            android:interpolator="@android:anim/accelerate_decelerate_interpolator"
            android:propertyName="x"
            android:valueType="floatType"
            android:valueFrom="0"
            android:valueTo="-1500"
            android:duration="600"/>

然后使用动画:

    myAdapterViewFlipper.setInAnimation(getActivity(), R.animator.right_in);
    myAdapterViewFlipper.setOutAnimation(getActivity(), R.animator.left_out);
    myAdapterViewFlipper.showNext();

    myAdapterViewFlipper.setInAnimation(getActivity(), R.animator.left_in);
    myAdapterViewFlipper.setOutAnimation(getActivity(), R.animator.right_out);
    myAdapterViewFlipper.showPrevious();

这篇关于不明白如何使用动画与adapterViewFlipper的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆