Android Open Source - gig-radio-android Ripple Layout From Project Back to project page gig-radio-android .
License The source code is released under:
GNU General Public License
If you think the Android project gig-radio-android 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 package com.getgigradio.gigradio.widget;
/ * f r o m w w w . j a v a 2 s . c o m * /
import android.animation.ObjectAnimator;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.Path;
import android.graphics.Region;
import android.support.annotation.NonNull;
import android.util.AttributeSet;
import android.view.MotionEvent;
import android.view.View;
import android.view.animation.AccelerateInterpolator;
public class RippleLayout extends View {
private float mDownX;
private float mDownY;
private float mRadius;
// private int alpha;
private Paint mPaint;
public RippleLayout(final Context context) {
super (context);
init();
}
public RippleLayout(final Context context, final AttributeSet attrs) {
super (context, attrs);
init();
}
public RippleLayout(final Context context, final AttributeSet attrs, final int defStyle) {
super (context, attrs, defStyle);
init();
}
private void init() {
mPaint = new Paint();
mPaint.setColor(Color.BLACK);
mPaint.setAlpha(50);
}
@Override
public boolean onTouchEvent(@NonNull final MotionEvent event) {
if (event.getActionMasked() == MotionEvent.ACTION_DOWN) {
mDownX = event.getX();
mDownY = event.getY();
ObjectAnimator animator = ObjectAnimator.ofFloat(this , "radius" , 0, getWidth() * 6.0f);
animator.setInterpolator(new AccelerateInterpolator());
animator.setDuration(2000);
animator.start();
ObjectAnimator animator1 = ObjectAnimator.ofInt(this , "alpha" , 175, 0);
animator1.setDuration(800);
animator1.start();
return false;
}
return false;
}
public void setRadius(final float radius) {
mRadius = radius;
// if (mRadius > 0) {
// RadialGradient radialGradient = new RadialGradient(
// mDownX,
// mDownY,
// mRadius * 3,
// Color.BLACK,
// Color.TRANSPARENT,
// Shader.TileMode.MIRROR
// );
// mPaint.setShader(radialGradient);
// }
invalidate();
}
public void setAlpha(int alpha) {
// this.alpha = alpha;
mPaint.setAlpha(alpha);
}
private Path mPath = new Path();
private Path mPath2 = new Path();
@Override
protected void onDraw(@NonNull final Canvas canvas) {
super.onDraw(canvas);
mPath2.reset();
mPath2.addCircle(mDownX, mDownY, mRadius, Path.Direction.CW);
canvas.clipPath(mPath2);
mPath.reset();
mPath.addCircle(mDownX, mDownY, mRadius / 3, Path.Direction.CW);
canvas.clipPath(mPath, Region.Op.DIFFERENCE);
canvas.drawCircle(mDownX, mDownY, mRadius, mPaint);
}
}
Java Source Code List com.getgigradio.gigradio.ApplicationTest.java com.getgigradio.gigradio.ApplicationTest.java com.getgigradio.gigradio.ApplicationTest.java com.getgigradio.gigradio.CardPresenter.java com.getgigradio.gigradio.DataModule.java com.getgigradio.gigradio.DetailsActivity.java com.getgigradio.gigradio.DetailsDescriptionPresenter.java com.getgigradio.gigradio.GigRadioApp.java com.getgigradio.gigradio.GigRadioModule.java com.getgigradio.gigradio.MainActivity.java com.getgigradio.gigradio.MainFragment.java com.getgigradio.gigradio.MovieList.java com.getgigradio.gigradio.Movie.java com.getgigradio.gigradio.PicassoBackgroundManagerTarget.java com.getgigradio.gigradio.PlayerActivity.java com.getgigradio.gigradio.SongKickModule.java com.getgigradio.gigradio.SoundCloudModule.java com.getgigradio.gigradio.Utils.java com.getgigradio.gigradio.VideoDetailsFragment.java com.getgigradio.gigradio.activity.MainActivity.java com.getgigradio.gigradio.api.SongKickApiHeaders.java com.getgigradio.gigradio.api.SongKickService.java com.getgigradio.gigradio.api.SoundCloudApiHeaders.java com.getgigradio.gigradio.api.SoundCloudService.java com.getgigradio.gigradio.event.BufferingEvent.java com.getgigradio.gigradio.event.GetTracksEvent.java com.getgigradio.gigradio.event.NewArtistEvent.java com.getgigradio.gigradio.event.NewSongEvent.java com.getgigradio.gigradio.event.NoSongPlayingEvent.java com.getgigradio.gigradio.event.PausingEvent.java com.getgigradio.gigradio.event.PlayingEvent.java com.getgigradio.gigradio.event.SeekBarMoveEvent.java com.getgigradio.gigradio.model.songkickevent.Artist.java com.getgigradio.gigradio.model.songkickevent.ClientLocation.java com.getgigradio.gigradio.model.songkickevent.Country.java com.getgigradio.gigradio.model.songkickevent.End.java com.getgigradio.gigradio.model.songkickevent.EventObject.java com.getgigradio.gigradio.model.songkickevent.Event.java com.getgigradio.gigradio.model.songkickevent.Identifier.java com.getgigradio.gigradio.model.songkickevent.Location.java com.getgigradio.gigradio.model.songkickevent.MetroArea.java com.getgigradio.gigradio.model.songkickevent.Performance.java com.getgigradio.gigradio.model.songkickevent.ResultsPage.java com.getgigradio.gigradio.model.songkickevent.Results.java com.getgigradio.gigradio.model.songkickevent.Series.java com.getgigradio.gigradio.model.songkickevent.Start.java com.getgigradio.gigradio.model.songkickevent.Venue.java com.getgigradio.gigradio.model.soundhoundartist.Artist.java com.getgigradio.gigradio.model.soundhoundtrack.Track.java com.getgigradio.gigradio.model.soundhoundtrack.User.java com.getgigradio.gigradio.playback.AudioBecomingNoisyReceiver.java com.getgigradio.gigradio.playback.MediaPlayerService.java com.getgigradio.gigradio.playback.MediaPlayerUtils.java com.getgigradio.gigradio.playback.RemoteControlReceiver.java com.getgigradio.gigradio.widget.RippleLayout.java