How can I make an animated/constant glowing effect around button in android?
Solution 1:
What you can do is you can make a relative layout as a background like this-
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:background="#FFC107"
android:alpha="0.1"
android:layout_marginBottom="30dp">
<Button
android:layout_width="match_parent"
android:layout_height="40dp"
/>
</RelativeLayout>
i have set the alpha to 0.1 initially in relative layout.
now in activity you can write the animation of fadein and fadeout-
ObjectAnimator fadeOut = ObjectAnimator.ofFloat(relativelayout, "alpha", .5f, .1f);
fadeOut.setDuration(300);
ObjectAnimator fadeIn = ObjectAnimator.ofFloat(relativelayout, "alpha", .1f, .5f);
fadeIn.setDuration(300);
mAnimationSet = new AnimatorSet();
mAnimationSet.play(fadeIn).after(fadeOut);
mAnimationSet.addListener(new AnimatorListenerAdapter() {
@Override
public void onAnimationEnd(Animator animation) {
super.onAnimationEnd(animation);
mAnimationSet.start();
}
});
mAnimationSet.start();
EDIT 3:
Update you layout like this copy and paste the code : change the color accordingly.
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_marginBottom="30dp">
<RelativeLayout
android:id="@+id/relative_layout_id"
android:layout_width="match_parent"
android:layout_height="60dp"
android:layout_centerInParent="true"
android:background="#FFC107"
android:alpha="0.1">
</RelativeLayout>
<Button
android:layout_width="match_parent"
android:layout_height="40dp"
android:background="#000000"
android:layout_centerInParent="true"
/>
</RelativeLayout>
Solution 2:
Step 1: Create a "glowing" drawable to put behind your button and put them both in a Framelayout. You'll need to put some padding around your button to be able to see the drawable behind it.
Step 2: Create an animation resource file like this and adjust the numbers to your likings.
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:anim/accelerate_decelerate_interpolator"
android:fillAfter="true">
<scale
android:fromXScale="1"
android:toXScale="0"
android:fromYScale="1"
android:toYScale="0"
android:duration="400"
android:pivotX="50%"
android:pivotY="50%"
/>
<scale
android:startOffset="700"
android:fromXScale="0"
android:toXScale="1"
android:fromYScale="0"
android:toYScale="1"
android:duration="400"
android:pivotX="50%"
android:pivotY="50%"
/>
</set>