zoukankan      html  css  js  c++  java
  • Android属性动画

    这几天看郭神的博客 Android属性动画完全解析(上),初识属性动画的基本用法之后,我自己突然想实现一种动画功能,就是我们在携程网、阿里旅行等等手机APP端买火车票的时候,看到有选择城市,那么就有出发城市和到达城市,也可以点击“切换”按钮就可以互换城市名,意思就可以买返程票了。你既然要去一个地方,那肯定你也要回来啊。这样就不用再重新选择城市了。点击“切换”的时候有个动画的效果,那我的代码如下:

    public class MainActivity extends Activity implements OnClickListener {
    
        public static final int UPDATE_VIEW = 1;
        private TextView textview_depart_city;
        private TextView textview_arrive_city;
        private Button button;
    
        private Handler handler = new Handler() {
            public void handleMessage(Message msg) {
                switch (msg.what) {
                case UPDATE_VIEW:
                    showCitySwitchRotation();
                    break;
    
                default:
                    break;
                }
            }
        };
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.aimation);
            textview_depart_city = (TextView) findViewById(R.id.tv_departcity);
            textview_arrive_city = (TextView) findViewById(R.id.tv_arrvivecity);
            button = (Button) findViewById(R.id.btn_switch);
            button.setOnClickListener(this);
    
        }
    
        @Override
        public void onClick(View v) {
    
            switch (v.getId()) {
            case R.id.btn_switch:
                new Thread(new Runnable() {
    
                    @Override
                    public void run() {
                        Message message = new Message();
                        message.what = UPDATE_VIEW;
                        handler.sendMessage(message);
    
                    }
                }).start();
                break;
            default:
                break;
            }
    
        }
    
        /**
         * 显示城市切换动画
         */
        private void showCitySwitchRotation() {
            float curXDepart = textview_depart_city.getX();
            float curXArrive = textview_arrive_city.getX();
            ObjectAnimator animatorDepart = ObjectAnimator.ofFloat(textview_depart_city, "x", curXArrive);
            ObjectAnimator animatorArraive = ObjectAnimator.ofFloat(textview_arrive_city, "x", curXDepart);
            AnimatorSet animSet = new AnimatorSet();
            animSet.play(animatorDepart).with(animatorArraive);
            animSet.setDuration(1000);
            animSet.start();
            }    
            
        }

    用属性动画实现的。代码如下:

  • 相关阅读:
    成功在RedFlag Linux 5.0桌面版安装oralce10
    ORACLE ebs 11.5.10 for linux 安装心得
    C#讀取轉換Excel檔案的優化(源代碼)
    [轉]SAP BASIS经验十年James Yen
    SAP Basis 常用事务代码
    健康指南:人体十大最佳黄金时间
    中國人使筷子的十二種忌諱
    SAP basis 相关设定
    技术出身,如何做好项目经理?
    [轉貼]奋斗5年从月薪3500到700万!
  • 原文地址:https://www.cnblogs.com/tleopard/p/4428278.html
Copyright © 2011-2022 走看看