1

I have an activity which has 16 animated buttons .Initially they are invisible. After that I am using a for loop each button is undergoing a fade animation . The R.anim.fade xml file is present at @anim/fade.

The problem is I cant pause and resume them. I like to pause and resume them in onPause() and onResume() method of an activity.

Also is there a method to check if all animations are complete??. That is how to know that b16 button which is the last button has completed its animation??

Here is my java code.

package com.ash432.itguesses;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.view.animation.Animation;
import android.view.animation.AnimationUtils;
import android.widget.Button;

 public class hints extends AppCompatActivity
 {

private int button_arr[] = {R.id.b1, R.id.b2, R.id.b3, R.id.b4, R.id.b5, 
R.id.b6, R.id.b7, R.id.b8, R.id.b9,
R.id.b10, R.id.b11, R.id.b12, R.id.b13, R.id.b14, R.id.b15, R.id.b16};

Animation anim;
@Override
protected void onCreate(Bundle savedInstanceState)
{
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_hints);
    int i;
    for (i = 0; i < 16; i++)
        invisible(button_arr[i]);


   for(i=0;i<16;i++)
            anim_button(button_arr[i], 200 * (i + 1));

    }


private void invisible(int id)
{
    Button b = (Button) findViewById(id);
    b.setVisibility(View.INVISIBLE);
}

private void anim_button(int id, long duration)
{
    Button b = (Button) findViewById(id);
    anim = AnimationUtils.loadAnimation(this, R.anim.fade);
    anim.setStartOffset(duration);
    b.startAnimation(anim);
    b.setVisibility(View.VISIBLE);
}

@Override
protected void onResume()
{
   super.onResume();
}

@Override
protected void onPause()
{
    super.onPause();
}
} 

Here is my xml file

  <?xml version="1.0" encoding="utf-8"?>
  <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:background="#040404"
            android:clickable="false"
            android:orientation="vertical"
            android:id="@+id/rel">

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

    android:textColor="#000000"
    android:textSize="35sp"

    android:layout_width="55dp"
    android:layout_height="55dp"
    android:background="#FFFFFF"
    android:shadowColor="#252323"
    android:shadowDx="0"
    android:shadowDy="0"
    android:shadowRadius="5"
    android:layout_marginTop="19dp"
    android:gravity="center"
    android:layout_marginLeft="24dp"
    android:layout_marginStart="24dp"
    android:focusable="false"
    android:focusableInTouchMode="false"

    android:layout_alignParentLeft="true"
    android:layout_alignParentStart="true" />

<Button
    android:id="@+id/b2"
    android:textColor="#000000"
    android:textSize="35sp"
    android:layout_width="55dp"
    android:layout_height="55dp"
    android:background="#FFFFFF"
    android:shadowColor="#A8A8A8"
    android:shadowDx="0"
    android:shadowDy="0"
    android:shadowRadius="5"
    android:layout_marginLeft="17dp"
    android:layout_marginStart="16dp"
    android:layout_alignTop="@+id/b1"
    android:layout_toRightOf="@+id/b1"
    android:layout_toEndOf="@+id/b1"
    android:gravity="center" />

<Button
    android:id="@+id/b3"
    android:textColor="#000000"
    android:textSize="35sp"
    android:layout_width="55dp"
    android:layout_height="55dp"
    android:background="#FFFFFF"
    android:shadowColor="#A8A8A8"
    android:shadowDx="0"
    android:shadowDy="0"
    android:shadowRadius="5"
    android:layout_marginLeft="17dp"
    android:layout_marginStart="15dp"
    android:layout_alignTop="@+id/b2"
    android:layout_toRightOf="@+id/b2"
    android:layout_toEndOf="@+id/b2"
    android:gravity="center" />

<Button
    android:id="@+id/b4"
    android:textColor="#000000"
    android:textSize="35sp"
    android:layout_width="55dp"
    android:layout_height="55dp"
    android:background="#FFFFFF"
    android:shadowColor="#A8A8A8"
    android:shadowDx="0"
    android:shadowDy="0"
    android:shadowRadius="5"
    android:layout_marginLeft="17dp"
    android:layout_marginStart="17dp"
    android:layout_alignTop="@+id/b3"
    android:layout_toRightOf="@+id/b3"
    android:layout_toEndOf="@+id/b3"
    android:gravity="center" />

<Button
    android:id="@+id/b5"
    android:textColor="#000000"
    android:textSize="35sp"
    android:layout_width="55dp"
    android:layout_height="55dp"
    android:background="#FFFFFF"
    android:shadowColor="#A8A8A8"
    android:shadowDx="0"
    android:shadowDy="0"
    android:shadowRadius="5"
    android:layout_marginTop="12dp"
    android:layout_below="@+id/b1"
    android:layout_alignLeft="@+id/b1"
    android:layout_alignStart="@+id/b1"
    android:gravity="center" />

<Button
    android:id="@+id/b6"
    android:textColor="#000000"
    android:textSize="35sp"
    android:layout_width="55dp"
    android:layout_height="55dp"
    android:background="#FFFFFF"
    android:shadowColor="#A8A8A8"
    android:shadowDx="0"
    android:shadowDy="0"
    android:shadowRadius="5"
    android:layout_alignTop="@+id/b5"
    android:layout_alignLeft="@+id/b2"
    android:layout_alignStart="@+id/b2"
    android:gravity="center" />

<Button
    android:id="@+id/b7"
    android:textColor="#000000"
    android:textSize="35sp"
    android:layout_width="55dp"
    android:layout_height="55dp"
    android:background="#FFFFFF"
    android:shadowColor="#A8A8A8"
    android:shadowDx="0"
    android:shadowDy="0"
    android:shadowRadius="5"
    android:layout_alignTop="@+id/b6"
    android:layout_alignLeft="@+id/b3"
    android:layout_alignStart="@+id/b3"
    android:gravity="center" />

<Button
    android:id="@+id/b8"
    android:textColor="#000000"
    android:textSize="35sp"
    android:layout_width="55dp"
    android:layout_height="55dp"
    android:background="#FFFFFF"
    android:shadowColor="#A8A8A8"
    android:shadowDx="0"
    android:shadowDy="0"
    android:shadowRadius="5"
    android:layout_alignTop="@+id/b7"
    android:layout_alignLeft="@+id/b4"
    android:layout_alignStart="@+id/b4"
    android:gravity="center" />

<Button
    android:id="@+id/b9"
    android:textColor="#000000"
    android:textSize="35sp"
    android:layout_width="55dp"
    android:layout_height="55dp"
    android:background="#FFFFFF"
    android:shadowColor="#A8A8A8"
    android:shadowDx="0"
    android:shadowDy="0"
    android:shadowRadius="5"
    android:layout_marginTop="12dp"
    android:layout_below="@+id/b5"
    android:layout_alignLeft="@+id/b5"
    android:layout_alignStart="@+id/b5"
    android:gravity="center" />

<Button
    android:id="@+id/b10"
    android:textColor="#000000"
    android:textSize="35sp"
    android:layout_width="55dp"
    android:layout_height="55dp"
    android:background="#FFFFFF"
    android:shadowColor="#A8A8A8"
    android:shadowDx="0"
    android:shadowDy="0"
    android:shadowRadius="5"
    android:layout_alignTop="@+id/b9"
    android:layout_alignLeft="@+id/b6"
    android:layout_alignStart="@+id/b6"
    android:gravity="center" />

<Button
    android:id="@+id/b11"
    android:textColor="#000000"
    android:textSize="35sp"
    android:layout_width="55dp"
    android:layout_height="55dp"
    android:background="#FFFFFF"
    android:shadowColor="#A8A8A8"
    android:shadowDx="0"
    android:shadowDy="0"
    android:shadowRadius="5"
    android:layout_alignTop="@+id/b10"
    android:layout_alignLeft="@+id/b7"
    android:layout_alignStart="@+id/b7"
    android:gravity="center" />

<Button
    android:id="@+id/b12"
    android:textColor="#000000"
    android:textSize="35sp"
    android:layout_width="55dp"
    android:layout_height="55dp"
    android:background="#FFFFFF"
    android:shadowColor="#A8A8A8"
    android:shadowDx="0"
    android:shadowDy="0"
    android:shadowRadius="5"
    android:layout_alignTop="@+id/b11"
    android:layout_alignLeft="@+id/b8"
    android:layout_alignStart="@+id/b8"
    android:gravity="center" />

<Button
    android:id="@+id/b13"
    android:textColor="#000000"
    android:textSize="35sp"
    android:layout_width="55dp"
    android:layout_height="55dp"
    android:background="#FFFFFF"
    android:shadowColor="#A8A8A8"
    android:shadowDx="0"
    android:shadowDy="0"
    android:shadowRadius="5"
    android:layout_marginTop="12dp"
    android:layout_below="@+id/b9"
    android:layout_alignLeft="@+id/b9"
    android:layout_alignStart="@+id/b9"
    android:gravity="center" />

<Button
    android:id="@+id/b14"
    android:textColor="#000000"
    android:textSize="35sp"
    android:layout_width="55dp"
    android:layout_height="55dp"
    android:background="#FFFFFF"
    android:shadowColor="#A8A8A8"
    android:shadowDx="0"
    android:shadowDy="0"
    android:shadowRadius="5"
    android:layout_alignTop="@+id/b13"
    android:layout_alignLeft="@+id/b10"
    android:layout_alignStart="@+id/b10"
    android:gravity="center" />

<Button
    android:id="@+id/b15"
    android:textColor="#000000"
    android:textSize="35sp"
    android:layout_width="55dp"
    android:layout_height="55dp"
    android:background="#FFFFFF"
    android:shadowColor="#A8A8A8"
    android:shadowDx="0"
    android:shadowDy="0"
    android:shadowRadius="5"
    android:layout_alignTop="@+id/b14"
    android:layout_alignLeft="@+id/b11"
    android:layout_alignStart="@+id/b11"
    android:gravity="center"
    android:singleLine="false"
    android:longClickable="false" />

<Button
    android:id="@+id/b16"
    android:textColor="#000000"
    android:textSize="35sp"
    android:layout_width="55dp"
    android:layout_height="55dp"
    android:background="#FFFFFF"
    android:shadowColor="#A8A8A8"
    android:shadowDx="0"
    android:shadowDy="0"
    android:shadowRadius="5"
    android:layout_alignTop="@+id/b15"
    android:layout_alignLeft="@+id/b12"
    android:layout_alignStart="@+id/b12"
    android:gravity="center" />


   </RelativeLayout>

EDIT

This is my R.anim.fade xml file . Actually I am trying to do blink animation.

 <?xml version="1.0" encoding="utf-8"?>
 <set xmlns:android="http://schemas.android.com/apk/res/android"
 android:interpolator="@android:anim/accelerate_interpolator"
 >
 <alpha
    android:fromAlpha="0.0"
    android:toAlpha="1.0"
    android:duration="200"
/>
<alpha
    android:fromAlpha="1.0"
    android:toAlpha="0.0"
    android:duration="200"
/>
</set>
Ash
  • 33
  • 2
  • 9

1 Answers1

2

For easy pause/resume animation you should use Animator with minSdkVersion 19. you can see here to know how to load Animator

animator -> fade_out.xml

<?xml version="1.0" encoding="UTF-8"?>
<objectAnimator
    android:propertyName="alpha"
    android:valueFrom="0"
    android:valueTo="1"
    xmlns:android="http://schemas.android.com/apk/res/android"/>

Then for pause and resume all animations, you can do like

List<Animator> mAnimatorList = new ArrayList<>();

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);


    anim_button(R.id.btn1, 4000);
    anim_button(R.id.btn2, 6000);
}

private void anim_button(int id, long duration)
{
    Button b = (Button) findViewById(id);
    Animator animator = AnimatorInflater.loadAnimator(this, R.animator.fade_out);
    animator.setTarget(b);
    animator.setDuration(duration);
    animator.start();

    mAnimatorList.add(animator);
}

@Override
protected void onPause() {
    super.onPause();
    for (Animator animator: mAnimatorList) {
        animator.pause();
    }
}

@Override
protected void onResume() {
    super.onResume();
    for (Animator animator: mAnimatorList) {
        animator.resume();
    }
}
Linh
  • 57,942
  • 23
  • 262
  • 279
  • It's not working. The buttons remain invisible .There is no animation going on. Also read my **EDIT** post. Sorry for late reply. – Ash Jun 08 '17 at 14:25