Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.util.ArrayList;
- import java.util.List;
- import java.util.Random;
- import android.app.Activity;
- import android.content.Context;
- import android.graphics.Canvas;
- import android.graphics.drawable.Drawable;
- import android.os.Bundle;
- import android.view.MotionEvent;
- import android.view.View;
- import android.view.animation.Animation;
- import android.view.animation.Interpolator;
- import android.view.animation.LinearInterpolator;
- import android.view.animation.TranslateAnimation;
- import android.widget.Toast;
- public class SnowFall extends Activity {
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- SnowFallView snowFallView = new SnowFallView(this);
- setContentView(snowFallView);
- snowFallView.setBackgroundDrawable(getResources().getDrawable(R.drawable.winter));
- }
- private class SnowFallView extends View {
- private int snow_flake_count = 10;
- private final List<Drawable> drawables = new ArrayList<Drawable>();
- private int[][] coords;
- private final Drawable snow_flake;
- public SnowFallView(Context context) {
- super(context);
- setFocusable(true);
- setFocusableInTouchMode(true);
- snow_flake = context.getResources().getDrawable(R.drawable.snow_flake);
- snow_flake.setBounds(0, 0, snow_flake.getIntrinsicWidth(), snow_flake
- .getIntrinsicHeight());
- }
- @Override
- protected void onSizeChanged(int width, int height, int oldw, int oldh) {
- super.onSizeChanged(width, height, oldw, oldh);
- Random random = new Random();
- Interpolator interpolator = new LinearInterpolator();
- snow_flake_count = Math.max(width, height) /100;
- coords = new int[snow_flake_count][];
- drawables.clear();
- for (int i = 0; i < snow_flake_count; i++) {
- Animation animation = new TranslateAnimation(20, height / 10
- - random.nextInt(height / 5), -65, height + 30);
- animation.setDuration(10 * height + random.nextInt(5 * height));
- animation.setRepeatCount(-1);
- animation.initialize(10, 10, 10, 10);
- animation.setInterpolator(interpolator);
- coords[i] = new int[] { random.nextInt(width - 30), -30 };
- drawables.add(new AnimateDrawable(snow_flake, animation));
- animation.setStartOffset(random.nextInt(20 * height));
- animation.startNow();
- }
- }
- @Override
- protected void onDraw(Canvas canvas) {
- for (int i = 0; i < snow_flake_count; i++) {
- Drawable drawable = drawables.get(i);
- canvas.save();
- canvas.translate(coords[i][0], coords[i][1]);
- drawable.draw(canvas);
- canvas.restore();
- }
- invalidate();
- }
- @Override
- public boolean onTouchEvent(MotionEvent event) {
- // ---> ????
- return super.onTouchEvent(event);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement