Amrita Stha Amrita Stha - 4 months ago 65
Android Question

how to create ripple effect for pre-lollipop

How to apply ripple effect like this

i have put the dependencies in app/build.gradle

app/build.gradle

dependencies {
compile 'com.github.traex.rippleeffect:library:1.3'
}


build.gradle

allprojects{
repositories{
jcenter()
maven(url "https://jitpack.io" }


XML file:

<com.andexert.library.RippleView
android:id="@+id/rect1"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<Button
android:id="@+id/enterButton"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Save your user name" />
</com.andexert.library.RippleView>


Java class file

protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.save_user);
editText=(EditText) findViewById(R.id.userNameEditText);
button=(Button) findViewById(R.id.enterButton);

sharedPreferences=getSharedPreferences(SHARED_NAME_STRING, MODE_PRIVATE);
String userNameString=sharedPreferences.getString(USER_NAME_STRING, "");

editText.setText(userNameString);

button.setOnClickListener(new View.OnClickListener() {

@Override
public void onClick(View v) {
String string=editText.getText().toString();
Intent intent=new Intent(SaveUser.this, MainActivity.class);
intent.putExtra("user", string);

SharedPreferences.Editor editor=sharedPreferences.edit();
editor.putString(USER_NAME_STRING, string);
editor.commit();

startActivity(intent);

}
});
}


it works but my problem is another activity opens before the ripple effect completes and when I press back button the remaining ripple completes. how can I solve it??

Answer

You could try this library balysv/material-ripple.

In your gradle, add this line :

compile 'com.balysv:material-ripple:1.0.2'

And this is how to do it :

<com.balysv.materialripple.MaterialRippleLayout
android:id="@+id/ripple"
android:layout_width="match_parent"
android:layout_height="wrap_content">

<Button
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_gravity="center"
    android:text="Button inside a ripple"/>
</com.balysv.materialripple.MaterialRippleLayout>
Comments