Android Open Source - passwords Add Arrow






From Project

Back to project page passwords.

License

The source code is released under:

Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ TERMS AND CONDITIONS FOR USE, REPRODUC...

If you think the Android project passwords listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

// Copyright 2014 Neil Wilkinson
////w  w  w .  j  a  v a  2 s. com
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//        http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

package com.measuredsoftware.passvault.view;

import android.animation.Animator;
import android.animation.AnimatorListenerAdapter;
import android.animation.AnimatorSet;
import android.animation.ValueAnimator;
import android.content.Context;
import android.util.AttributeSet;
import android.view.View;
import android.widget.ImageView;
import com.measuredsoftware.passvault.R;

/**
 * Animated arrow pointing at the bottom of the screen.
 */
public class AddArrow extends ImageView implements ValueAnimator.AnimatorUpdateListener
{
    private AnimatorSet animator;
    private int counter;
    private final float moveAmount;

    public AddArrow(final Context context, final AttributeSet attrs)
    {
        super(context, attrs);

        setImageResource(R.drawable.arrow);

        moveAmount = getDrawable().getIntrinsicHeight() * 0.5f;
        animator = new AnimatorSet();
        ValueAnimator.setFrameDelay(16);
        final ValueAnimator moveDown = ValueAnimator.ofFloat(-moveAmount, 0);
        moveDown.addUpdateListener(this);
        moveDown.setDuration(250);
        final ValueAnimator moveUp = ValueAnimator.ofFloat(0, -moveAmount);
        moveUp.addUpdateListener(this);
        moveUp.setDuration(400);
        animator.playSequentially(moveDown, moveUp);
        animator.addListener(new AnimatorListenerAdapter()
        {
            @Override
            public void onAnimationEnd(final Animator animation)
            {
                animator.setStartDelay(counter++ % 2 == 0 ? 0 : 500);
                animator.start();
            }
        });
    }

    public void hide()
    {
        if (getVisibility() == View.VISIBLE)
        {
            setVisibility(View.INVISIBLE);
        }

        counter = 0;
        animator.end();
    }

    public void show()
    {
        setTranslationY(-moveAmount);
        setVisibility(VISIBLE);
        animator.start();
    }

    @Override
    public void onAnimationUpdate(final ValueAnimator animation)
    {
       setTranslationY((Float) animation.getAnimatedValue());
    }
}




Java Source Code List

com.measuredsoftware.passvault.AbsPasswordActivity.java
com.measuredsoftware.passvault.EditPasswordActivity.java
com.measuredsoftware.passvault.MainActivity.java
com.measuredsoftware.passvault.NewPasswordActivity.java
com.measuredsoftware.passvault.PassVaultApplication.java
com.measuredsoftware.passvault.Typefaces.java
com.measuredsoftware.passvault.drawable.StateTransitionDrawable.java
com.measuredsoftware.passvault.listener.PasswordTextWatcher.java
com.measuredsoftware.passvault.model.PasswordGenerator.java
com.measuredsoftware.passvault.model.PasswordListAdapter.java
com.measuredsoftware.passvault.model.PasswordModel.java
com.measuredsoftware.passvault.model.RandomRandomizer.java
com.measuredsoftware.passvault.model.Randomizer.java
com.measuredsoftware.passvault.model.UserPreferences.java
com.measuredsoftware.passvault.tools.StringTools.java
com.measuredsoftware.passvault.view.AddArrow.java
com.measuredsoftware.passvault.view.AnimatedListView.java
com.measuredsoftware.passvault.view.BackgroundContainer.java
com.measuredsoftware.passvault.view.CondensedCheckedTextView.java
com.measuredsoftware.passvault.view.CondensedEditText.java
com.measuredsoftware.passvault.view.CondensedTextButton.java
com.measuredsoftware.passvault.view.CondensedTextView.java
com.measuredsoftware.passvault.view.FooterBar.java
com.measuredsoftware.passvault.view.GeneratorSection.java
com.measuredsoftware.passvault.view.MenuScreen.java
com.measuredsoftware.passvault.view.PasswordLengthSlider.java
com.measuredsoftware.passvault.view.PasswordListItem.java
com.measuredsoftware.passvault.view.PasswordList.java
com.measuredsoftware.passvault.view.PasswordPopup.java
com.measuredsoftware.passvault.view.PasswordRandomizerView.java
com.measuredsoftware.passvault.view.PressImageButton.java
com.measuredsoftware.passvault.view.TitleBar.java