Spinner下拉动画

and*_*ryo 5 android view spinner android-animation

尝试在以下链接中实现动画https://dribbble.com/shots/1753718-Chat-Screen-UX-UI-iOS-App.附上我们迄今为止尝试过的内容.无法准确再现动画.分享您对如何实施它的想法.

    @Override
    public View getDropDownView(int position, View convertView, ViewGroup parent) {
        ViewHolder viewHolder;
        View view = convertView;
        if (view == null) {
            viewHolder = new ViewHolder();
            view = mInflater.inflate(R.layout.rowlayout, null);
            viewHolder.textView = (TextView) view.findViewById(R.id.textView);
            view.setTag(viewHolder);
        } else {
            viewHolder = (ViewHolder) view.getTag();
        }

        viewHolder.textView.setText(mItems.get(position));
        animate(view, position);
        return view;
    }


     private void animate(View target, int index){

        Animation animtopOut = AnimationUtils.loadAnimation(mContext, R.anim.slide_top_to_bottom);
        animtopOut.setStartOffset(index * 100);
        target.startAnimation(animtopOut);
  }
Run Code Online (Sandbox Code Playgroud)

附加动画资源文件

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
    android:interpolator="@android:anim/accelerate_interpolator">
    <translate android:fromYDelta="-100%" android:toYDelta="0"
        android:duration="100" />
    <alpha android:fromAlpha="0.0" android:toAlpha="1.0"
        android:duration="500" />
</set>
Run Code Online (Sandbox Code Playgroud)

Tan*_* Ke 0

在我看来:

  1. 您需要禁用微调器的弹出窗口动画样式。
  2. 将动画应用于下拉列表项中的每个列表项

UX演示似乎每个项目都应该通过x轴从-90旋转到0才能出现,您可以使用ViewPropertyAnimator.rotationX(float value)或ViewPropertyAnimator.rotationXBy(float value)来更改视图的旋转x,记住设置首先将 y 旋转到 0,以便动画可以从视图顶部旋转