By using a repeating image like this,
is it possible to create animation like this?
I figured it out
MainActivity.java:
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final int screenWidth = getScreenDimensions(this).x;
final int waveImgWidth = getResources().getDrawable(R.drawable.wave).getIntrinsicWidth();
int animatedViewWidth = 0;
while (animatedViewWidth < screenWidth) {
animatedViewWidth += waveImgWidth;
}
animatedViewWidth += waveImgWidth;
View animatedView = findViewById(R.id.animated_view);
FrameLayout.LayoutParams layoutParams = (FrameLayout.LayoutParams) animatedView.getLayoutParams();
layoutParams.width = animatedViewWidth;
animatedView.setLayoutParams(layoutParams);
Animation waveAnimation = new TranslateAnimation(0, -waveImgWidth, 0, 0);
waveAnimation.setInterpolator(new LinearInterpolator());
waveAnimation.setRepeatCount(Animation.INFINITE);
waveAnimation.setDuration(2500);
animatedView.startAnimation(waveAnimation);
}
public static Point getScreenDimensions(Context context) {
int width = context.getResources().getDisplayMetrics().widthPixels;
int height = context.getResources().getDisplayMetrics().heightPixels;
return new Point(width, height);
}
}
activity_main.xml:
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<View
android:id="@+id/animated_view"
android:layout_width="match_parent"
android:layout_height="74dp"
android:background="@drawable/wave_repeating_bg" />
</FrameLayout>
wave_repeating_bg.xml:
<?xml version="1.0" encoding="utf-8"?>
<bitmap xmlns:android="http://schemas.android.com/apk/res/android"
android:src="@drawable/wave"
android:tileMode="repeat" />
drawable-xxhdpi/wave.jpg:
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With