我点击后停止按钮动画并导航到android中的另一个屏幕

时间:2014-12-29 07:04:11

标签: android animation

我已经编写了一个按钮的代码来为它设置动画并导航到另一个屏幕。它成功完成了。但导航是在完成按钮动画之前完成的,我需要停止或暂停动画一段时间,并且必须在完成动画后导航到另一个屏幕。

main.xml中:

<Button
    android:id="@+id/button1"     

    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_above="@+id/button1"
    android:layout_centerHorizontal="true"
    android:background="@drawable/myborder"
    android:layout_marginTop="5dp"
   android:radius="12.0dip"
   android:height="30dp"        
    android:textColor="#009900"
    android:text="@string/mystring"
    android:topLeftRadius="12.0dip"
    android:topRightRadius="12.0dip"
    android:clickable="true"
    android:onClick="set1"
    android:visibility="visible"/>

myborder.xml:

           <?xml version="1.0" encoding="utf-8"?>
          <selector xmlns:android="http://schemas.android.com/apk/res/android">
           <item>
             <shape xmlns:android="http://schemas.android.com/apk/res/android" 
                android:shape="rectangle"> 
            <solid android:color="#ffcccc"/>
               <corners android:bottomLeftRadius="8dp"
                 android:bottomRightRadius="8dp"
            android:topLeftRadius="8dp"
           android:topRightRadius="8dp"/>
          <stroke
              android:color="@android:color/white"
             android:width="1dp" 
                 />
               <solid android:color="@android:color/transparent" />
            </shape>
              </item>
            </selector>

activity.java:

        package com.example.button;
       import android.support.v7.app.ActionBarActivity;
        import android.content.Context;
       import android.content.Intent;
          import android.net.Uri;
        import android.os.Bundle;
         import android.view.Menu;
         import android.view.MenuItem;
        import android.view.View;
         import android.view.View.OnClickListener;
         import android.view.animation.Animation;
        import android.view.animation.AnimationUtils;
          import android.widget.Button;
        import android.widget.ImageButton;
        public class MainActivity extends ActionBarActivity {
        @Override
          protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
          setContentView(R.layout.activity_main);
           final Animation myscale = AnimationUtils.loadAnimation(this, R.drawable.scale);
         Button b1 = (Button)findViewById(R.id.button1);
         b1.setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View v) {
         v.startAnimation(myscale);//animation starts  
       Intent browserIntent = new Intent(Intent.ACTION_VIEW,                                                  Uri.parse("http://www.oneness.com"));//navigating to the website 
                        startActivity(browserIntent);
                            }       });

通过这段代码我的输出是这样的: 如果用户点击该按钮,则会导航到代码中提到的URL。我无法清楚地看到动画。我想暂停或停止动画一段时间,然后自动导航到提到的URL。

问题:用户无法在没有显示任何动画的情况下导航到上述链接时无法看到动画。

要求:在导航到另一个屏幕或链接之前,需要向用户显示完整的动画。

1 个答案:

答案 0 :(得分:0)

尝试此代码.....

 package com.example.button;
           import android.support.v7.app.ActionBarActivity;
            import android.content.Context;
           import android.content.Intent;
              import android.net.Uri;
            import android.os.Bundle;
             import android.view.Menu;
             import android.view.MenuItem;
            import android.view.View;
             import android.view.View.OnClickListener;
             import android.view.animation.Animation;
            import android.view.animation.AnimationUtils;
              import android.widget.Button;
            import android.widget.ImageButton;
            public class MainActivity extends ActionBarActivity {
            @Override
              protected void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);
              setContentView(R.layout.activity_main);
               final Animation myscale = AnimationUtils.loadAnimation(this, R.drawable.scale);
             Button b1 = (Button)findViewById(R.id.button1);
             b1.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
             v.startAnimation(myscale);//animation starts 

    new Handler().postDelayed(new Runnable() {

                @Override
                public void run() {
                    Intent browserIntent = new Intent(Intent.ACTION_VIEW,                                                  Uri.parse("http://www.oneness.com"));//navigating to the website 
                            startActivity(browserIntent);

                }
            }, 2000);

     }       });