Thursday 23 July 2015

Three way android slider like iphone slider (Unlock screen animation)

The below code works with the animation of sliding

check out



Activity.class

//Package name
import android.os.Bundle;
import android.animation.ObjectAnimator;
import android.animation.ValueAnimator;
import android.animation.ValueAnimator.AnimatorUpdateListener;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.RelativeLayout;
import android.widget.SeekBar;
import android.widget.SeekBar.OnSeekBarChangeListener;
import android.widget.TextView;

public class FirstscreenActivity extends Activity implements OnSeekBarChangeListener,
OnClickListener {
SeekBar sb;
boolean flag = false;
RelativeLayout page_background;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.firstscreenactivity);
Initialization();
sb.setOnSeekBarChangeListener(this);
page_background.setOnClickListener(this);
}

private void Initialization() {
sb = (SeekBar) findViewById(R.id.myseek);
sb.setProgress(50);
page_background = (RelativeLayout) findViewById(R.id.full_page_layout);
//seekbartest.setText("Slide to Unlock");

}

@Override
public void onProgressChanged(SeekBar arg0, int arg1, boolean arg2) {
if (arg1 > 95) {
arg0.setThumb(getResources().getDrawable(R.drawable.splashslider));
}
}

@Override
public void onStartTrackingTouch(SeekBar arg0) {
Log.e("progress baronStartTrackingTouch",""+arg0.getProgress());
}

@SuppressLint("NewApi") @Override
public void onStopTrackingTouch(final SeekBar arg0) {
Log.e("onStopTrackingTouch", "onStopTrackingTouch");
Log.e("progress bar",""+arg0.getProgress());
if (arg0.getProgress() <= 20) {
ValueAnimator anim = ValueAnimator.ofInt(arg0.getProgress(), 0);
anim.setDuration(100);
anim.addUpdateListener(new AnimatorUpdateListener() {
    @Override
    public void onAnimationUpdate(ValueAnimator animation) {
    int animProgress = (Integer) animation.getAnimatedValue();
    arg0.setProgress(animProgress);
    }
});
anim.start();

}
else if(arg0.getProgress() > 20 && arg0.getProgress()< 50) {
ValueAnimator anim = ValueAnimator.ofInt(arg0.getProgress(), 50);
anim.setDuration(200);
anim.addUpdateListener(new AnimatorUpdateListener() {
    @Override
    public void onAnimationUpdate(ValueAnimator animation) {
    int animProgress = (Integer) animation.getAnimatedValue();
    arg0.setProgress(animProgress);
    }
});
anim.start();
//arg0.setProgress(50);
}
else if(arg0.getProgress() > 50 && arg0.getProgress()< 80){
ValueAnimator anim = ValueAnimator.ofInt(arg0.getProgress(), 50);
anim.setDuration(200);
anim.addUpdateListener(new AnimatorUpdateListener() {
    @Override
    public void onAnimationUpdate(ValueAnimator animation) {
    int animProgress = (Integer) animation.getAnimatedValue();
    arg0.setProgress(animProgress);
    }
});
anim.start();
//arg0.setProgress(50);
}else if(arg0.getProgress() >= 80){
ValueAnimator anim = ValueAnimator.ofInt(arg0.getProgress(), 100);
anim.setDuration(100);
anim.addUpdateListener(new AnimatorUpdateListener() {
    @Override
    public void onAnimationUpdate(ValueAnimator animation) {
    int animProgress = (Integer) animation.getAnimatedValue();
    arg0.setProgress(animProgress);
    }
});
anim.start();
//arg0.setProgress(100);
sb.setVisibility(View.VISIBLE);

}
else{
}
}

@Override
public void onClick(View v) {
//Log.e()
sb.setVisibility(View.VISIBLE);
}

}





The xml file of the above activity:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/full_page_layout"
    android:layout_width="match_parent"
    android:layout_height="match_parent" 
    android:background="@drawable/splashbg" >

    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:paddingLeft="20dp"
        android:paddingRight="20dp"
        android:layout_marginBottom="14dp"
     android:layout_alignParentBottom="true"
        >

        <SeekBar
            android:id="@+id/myseek"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:paddingLeft="40dp"
             android:paddingRight="40dp"
            android:background="@android:color/transparent"
            android:clickable="false"
            android:max="100"
            android:progressDrawable="@android:color/transparent"
            android:thumb="@drawable/splashslider" />
       
    </RelativeLayout>

</RelativeLayout>

No comments:

Post a Comment