如何使按钮与动画的改变按钮、动画

2023-09-07 13:27:30 作者:演员从事欺骗

我应该做这样的图片。按钮与动画改变。它必须像圆圈水平滚动view.When我preSS键3 - 1 - 移动到位置2,2动画移动到位置3。请给我一些想法,我怎么能执行呢?

i should to do like at the picture.Buttons have to change with animations. It must be like circle horizontal scroll view.When i press button "3" - "1" - moved to position "2", "2" moved with animation to position "3". Please give me some ideas, how can i perform it?

推荐答案

试试这个..

第1步:

创建4 按钮的 dummy_btn,btn_1,btn_2,btn_3 在XML像下面

Create 4 Button's dummy_btn,btn_1,btn_2,btn_3 in xml like below

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_gravity="center"
    android:gravity="center" >

    <Button
        android:id="@+id/dummy_btn"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_margin="5dp"
        android:layout_weight="1"
        android:text="Button"
        android:visibility="gone" />

    <Button
        android:id="@+id/btn_1"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_margin="5dp"
        android:layout_weight="1"
        android:text="Button 1" />

    <Button
        android:id="@+id/btn_2"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_margin="5dp"
        android:layout_weight="1"
        android:text="Button 2" />

    <Button
        android:id="@+id/btn_3"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_margin="5dp"
        android:layout_weight="1"
        android:text="Button 3" />

</LinearLayout>

第2步:

Declear按钮在全局变量像下面

Declear the Button's in Global variables like below

Button btn_1,btn_2,btn_3,dummy_btn;

初​​始化按钮的像下面

btn_1 = (Button) findViewById(R.id.btn_1);
btn_2 = (Button) findViewById(R.id.btn_2);
btn_3 = (Button) findViewById(R.id.btn_3);
dummy_btn = (Button) findViewById(R.id.dummy_btn);

第三步:

btn_1 ClickListener 像下面

 btn_1.setOnClickListener(new OnClickListener(){

        @Override
        public void onClick(View v) {

            // Get all currently displaying text of Button
            final String btn_1_string = btn_1.getText().toString().trim();
            final String btn_2_string = btn_2.getText().toString().trim();
            final String btn_3_string = btn_3.getText().toString().trim();

            // First Button Left to Right Animation
            TranslateAnimation anim = new TranslateAnimation(0f, 200f, 0f, 0f); 
            anim.setDuration(2000);
            btn_1.startAnimation(anim);

            // Second Button Left to Right Animation
            anim = new TranslateAnimation(0f, 200f, 0f, 0f); 
            anim.setDuration(2000);
            btn_2.startAnimation(anim);

            // Third Button Left to Right Animation
            anim = new TranslateAnimation(0f, 200f, 0f, 0f); 
            anim.setDuration(2000);
            btn_3.startAnimation(anim);

            btn_3.setVisibility(View.INVISIBLE);

            dummy_btn.setText(btn_3.getText().toString().trim());

            // Dummy Button Left to Right Animation for like marquee animation
            dummy_btn.setVisibility(View.VISIBLE);
            anim = new TranslateAnimation(-200f, 0f, 0f, 0f); 
            anim.setDuration(2000);
            dummy_btn.startAnimation(anim);

            // After 2000 Millis displaying text
            Handler handler = new Handler();
            handler.postDelayed(new Runnable() {

                @Override
                public void run() {
                    btn_2.setText(btn_1_string);
                    btn_3.setText(btn_2_string);
                    btn_1.setText(btn_3_string);
                    btn_3.setVisibility(View.VISIBLE);
                    dummy_btn.setVisibility(View.GONE);                     
                }

            }, 2000);

        }

     });

和其余两个按钮ClickListener

     btn_2.setOnClickListener(new OnClickListener(){

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            btn_1.performClick();
        }

     });

     btn_3.setOnClickListener(new OnClickListener(){

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                btn_1.performClick();
            }

    });