在Android中显示数字的滚动动画

在Android中显示数字的滚动动画,android,animation,Android,Animation,要创建通过滚动显示数字的动画。 e、 g.我已经看到ios可以使用它,我们可以对android也这样做吗 感谢您的帮助 尝试以下操作以创建车轮捡拾器 public class MainActivity extends Activity { // TODO: Externalize string-array String wheelMenu1[] = new String[]{"name 1", "name 2", "name 3", "name 4",

要创建通过滚动显示数字的动画。 e、 g.我已经看到ios可以使用它,我们可以对android也这样做吗


感谢您的帮助

尝试以下操作以创建
车轮捡拾器

public class MainActivity extends Activity
    {
        // TODO: Externalize string-array
        String wheelMenu1[] = new String[]{"name 1", "name 2", "name 3", "name 4", "name 5", "name 6","name 7","name 8","name 9"};
        String wheelMenu2[] = new String[]{"age 1", "age 2", "age 3"};
        String wheelMenu3[] = new String[]{"10", "20","30","40","50","60"};

        // Wheel scrolled flag
        private boolean wheelScrolled = false;

        private TextView text;
        private EditText text1;
        private EditText text2;
        private EditText text3;

        @Override
        public void onCreate(Bundle savedInstanceState)
            {
                super.onCreate(savedInstanceState);
                setContentView(R.layout.main);

                initWheel1(R.id.p1);
                initWheel2(R.id.p2);
                initWheel3(R.id.p3);

                text1 = (EditText) this.findViewById(R.id.r1);
                text2 = (EditText) this.findViewById(R.id.r2);
                text3 = (EditText) this.findViewById(R.id.r3);
                text = (TextView) this.findViewById(R.id.result);
            }

        // Wheel scrolled listener
        OnWheelScrollListener scrolledListener = new OnWheelScrollListener()
            {
                public void onScrollStarts(WheelView wheel)
                    {
                        wheelScrolled = true;
                    }

                public void onScrollEnds(WheelView wheel)
                    {
                        wheelScrolled = false;
                        updateStatus();
                    }
            };

        // Wheel changed listener
        private final OnWheelChangedListener changedListener = new OnWheelChangedListener()
            {
                public void onChanged(WheelView wheel, int oldValue, int newValue)
                    {
                        if (!wheelScrolled)
                            {
                                updateStatus();
                            }
                    }
            };

        /**
         * Updates entered PIN status
         */
        private void updateStatus()
            {
                text1.setText(wheelMenu1[getWheel(R.id.p1).getCurrentItem()]);
                text2.setText(wheelMenu2[getWheel(R.id.p2).getCurrentItem()]);
                text3.setText(wheelMenu3[getWheel(R.id.p3).getCurrentItem()]);

                text.setText(wheelMenu1[getWheel(R.id.p1).getCurrentItem()] + " - " + wheelMenu2[getWheel(R.id.p2).getCurrentItem()] + " - " + wheelMenu3[getWheel(R.id.p3).getCurrentItem()]);
            }

        /**
         * Initializes wheel
         * 
         * @param id
         *          the wheel widget Id
         */

        private void initWheel1(int id)
            {
                WheelView wheel = (WheelView) findViewById(id);
                wheel.setAdapter(new ArrayWheelAdapter<String>(wheelMenu1));
                wheel.setVisibleItems(2);
                wheel.setCurrentItem(0);
                wheel.addChangingListener(changedListener);
                wheel.addScrollingListener(scrolledListener);
            }

        private void initWheel2(int id)
            {
                WheelView wheel = (WheelView) findViewById(id);
                wheel.setAdapter(new ArrayWheelAdapter<String>(wheelMenu2));
                wheel.setVisibleItems(2);
                wheel.setCurrentItem(0);
                wheel.addChangingListener(changedListener);
                wheel.addScrollingListener(scrolledListener);
            }

        private void initWheel3(int id)
            {
                WheelView wheel = (WheelView) findViewById(id);

                wheel.setAdapter(new ArrayWheelAdapter<String>(wheelMenu3));
                wheel.setVisibleItems(2);
                wheel.setCurrentItem(0);
                wheel.addChangingListener(changedListener);
                wheel.addScrollingListener(scrolledListener);
            }

        /**
         * Returns wheel by Id
         * 
         * @param id
         *          the wheel Id
         * @return the wheel with passed Id
         */
        private WheelView getWheel(int id)
            {
                return (WheelView) findViewById(id);
            }

        /**
         * Tests wheel value
         * 
         * @param id
         *          the wheel Id
         * @param value
         *          the value to test
         * @return true if wheel value is equal to passed value
         */
        private int getWheelValue(int id)
            {
                return getWheel(id).getCurrentItem();
            }
    }
公共类MainActivity扩展活动
{
//TODO:外部化字符串数组
字符串wheelMenu1[]=新字符串[]{“名称1”、“名称2”、“名称3”、“名称4”、“名称5”、“名称6”、“名称7”、“名称8”、“名称9”};
字符串wheelMenu2[]=新字符串[]{“年龄1”、“年龄2”、“年龄3”};
字符串wheelMenu3[]=新字符串[]{“10”、“20”、“30”、“40”、“50”、“60”};
//车轮滚动标志
私有布尔wheelScrolled=false;
私有文本查看文本;
私人编辑文本1;
私人编辑文本文本2;
私人编辑文本文本3;
@凌驾
创建时的公共void(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
初始轮1(R.id.p1);
初始轮2(R.id.p2);
初始轮3(R.id.p3);
text1=(EditText)this.findViewById(R.id.r1);
text2=(EditText)this.findViewById(R.id.r2);
text3=(EditText)this.findViewById(R.id.r3);
text=(TextView)this.findViewById(R.id.result);
}
//滚轮式侦听器
OnWheelScrollListener scrolledListener=新建OnWheelScrollListener()
{
CROWLLSTARTS上的公共无效(车轮视图车轮)
{
wheelScrolled=true;
}
十字轴上的公共空隙(车轮视图车轮)
{
wheelScrolled=false;
更新状态();
}
};
//轮换监听器
私有最终OnWheelChangedListener changedListener=新OnWheelChangedListener()
{
更改后的公共无效(WheelView控制盘、int-oldValue、int-newValue)
{
如果(!已滚动)
{
更新状态();
}
}
};
/**
*更新输入的PIN状态
*/
私有void updateStatus()
{
text1.setText(wheelMenu1[getWheel(R.id.p1).getCurrentItem());
text2.setText(wheelMenu2[getWheel(R.id.p2).getCurrentItem()]);
text3.setText(wheelMenu3[getWheel(R.id.p3).getCurrentItem()]);
text.setText(wheelMenu1[getWheel(R.id.p1).getCurrentItem()]+“-”+wheelMenu2[getWheel(R.id.p2).getCurrentItem()]+“-”+wheelMenu3[getWheel(R.id.p3).getCurrentItem());
}
/**
*初始化控制盘
* 
*@param-id
*控制盘小部件Id
*/
私有void initWheel1(内部id)
{
WheelView车轮=(WheelView)findViewById(id);
车轮设置适配器(新阵列车轮适配器(车轮菜单1));
车轮。设置可见项目(2);
wheel.setCurrentItem(0);
wheel.addChangingListener(changedListener);
wheel.addScrollingListener(scrolledListener);
}
私有无效初始化2(内部id)
{
WheelView车轮=(WheelView)findViewById(id);
车轮设置适配器(新阵列车轮适配器(车轮菜单2));
车轮。设置可见项目(2);
wheel.setCurrentItem(0);
wheel.addChangingListener(changedListener);
wheel.addScrollingListener(scrolledListener);
}
私有void initWheel3(内部id)
{
WheelView车轮=(WheelView)findViewById(id);
wheel.setAdapter(新阵列WheelLadapter(wheelMenu3));
车轮。设置可见项目(2);
wheel.setCurrentItem(0);
wheel.addChangingListener(changedListener);
wheel.addScrollingListener(scrolledListener);
}
/**
*按Id返回控制盘
* 
*@param-id
*车轮Id
*@返回已通过Id的车轮
*/
私人WheelView getWheel(内部id)
{
返回(WheelView)findViewById(id);
}
/**
*测试车轮值
* 
*@param-id
*车轮Id
*@param值
*要测试的值
*@如果车轮值等于通过值,则返回true
*/
私有int getWheelValue(int id)
{
返回getWheel(id).getCurrentItem();
}
}
xml布局

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical"
    android:background="@drawable/layout_bg">


    <LinearLayout
        android:layout_marginTop="24dp"
        android:layout_gravity="center_horizontal"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content">

        <com.example.wheel.WheelView
            android:id="@+id/p1"
            android:layout_height="wrap_content"
            android:layout_width="wrap_content" />
        <com.example.wheel.WheelView
            android:id="@+id/p2"
            android:layout_height="wrap_content"
            android:layout_width="wrap_content" />
        <com.example.wheel.WheelView
            android:id="@+id/p3"
            android:layout_height="wrap_content"
            android:layout_width="wrap_content" />
    </LinearLayout>

    <LinearLayout
        android:orientation="horizontal"
        android:layout_gravity="center_horizontal"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="24dp">
        <EditText
            android:id="@+id/r1"
            android:layout_width="100dip"
            android:layout_height="wrap_content"
            android:layout_marginTop="24dp"
            android:layout_gravity="center_horizontal"
            android:textSize="18sp"
            android:textColor="#000">
        </EditText>
        <EditText
            android:id="@+id/r2"
            android:layout_width="80dip"
            android:layout_height="wrap_content"
            android:layout_marginTop="24dp"
            android:layout_gravity="center_horizontal"
            android:textSize="18sp"
            android:textColor="#000">
        </EditText>
        <EditText
            android:id="@+id/r3"
            android:layout_width="80dip"
            android:layout_height="wrap_content"
            android:layout_marginTop="24dp"
            android:layout_gravity="center_horizontal"
            android:textSize="18sp"
            android:textColor="#000">
        </EditText>
    </LinearLayout>

    <TextView
        android:id="@+id/result"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="24dp"
        android:layout_gravity="center_horizontal"
        android:textSize="18sp"
        android:textColor="#FFF"
        android:text="Your choice">
    </TextView>
</LinearLayout>


尝试使用车轮选择器尝试此链接这将对您有所帮助