Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.example.test;
- import java.io.File;
- import java.util.Random;
- import android.content.Context;
- import android.content.SharedPreferences;
- import android.graphics.Bitmap;
- import android.graphics.BitmapFactory;
- import android.graphics.Canvas;
- import android.graphics.Color;
- import android.os.Environment;
- import android.os.Handler;
- import android.preference.PreferenceManager;
- import android.service.wallpaper.WallpaperService;
- import android.util.Log;
- import android.view.Display;
- import android.view.MotionEvent;
- import android.view.SurfaceHolder;
- import android.view.WindowManager;
- import android.widget.Toast;
- public class CybWallpaper extends WallpaperService {
- int noofsnows=30;
- int x[]=new int[100],y[]=new int[100],speed[]=new int[100],nt=0;
- int isr=0;
- int scw,sch,snowsize=20;
- float cx[]=new float[100],cy[]=new float[100];
- int temps[]=new int[100],tempcs[]=new int[100];
- boolean isft=true,isclicked=false;
- Bitmap snow,bg,gift;
- SharedPreferences settings;
- Bitmap[] te=new Bitmap[100],ts=new Bitmap[6];
- boolean isrun;
- int gifts[]={R.drawable.g1,R.drawable.g2,R.drawable.g3,R.drawable.g4,R.drawable.g5,R.drawable.g6};
- @Override
- public Engine onCreateEngine() {
- return new Mywall();
- }
- public class Mywall extends Engine
- {
- Handler hand=new Handler();
- Random ran=new Random();
- Runnable iterate=new Runnable()
- {
- @Override
- public void run() {
- drawframe();
- }
- };
- public void update()
- {
- snow=BitmapFactory.decodeResource(getResources(), R.drawable.s1);
- //Background image
- settings=PreferenceManager.getDefaultSharedPreferences(getBaseContext());
- if(settings.getBoolean("cusimage", false))
- {
- File newImg=new File(Environment.getExternalStorageDirectory().getAbsolutePath()+"/cyb/livewallpaper.jpg");
- if(newImg.exists())
- {
- bg=BitmapFactory.decodeFile(newImg.toString());
- }
- else
- bg=BitmapFactory.decodeResource(getResources(), R.drawable.b1);
- }
- else
- bg=BitmapFactory.decodeResource(getResources(), R.drawable.b1);
- //Snows
- noofsnows=Integer.parseInt(settings.getString("noofsnow", "30"));
- for(int i=0;i<noofsnows&&isft;i++)
- {
- x[i]=ran.nextInt(scw);
- y[i]=ran.nextInt(sch);
- temps[i]=(10+ran.nextInt(snowsize));
- tempcs[i]=(50+ran.nextInt(40));
- speed[i]=(4+ran.nextInt(4));
- cx[i]=-1;
- cy[i]=-1;
- te[i]=Bitmap.createScaledBitmap(snow, temps[i], temps[i], false);
- gift=BitmapFactory.decodeResource(getResources(), gifts[ran.nextInt(5)]);
- ts[(i%6)]=Bitmap.createScaledBitmap(gift, tempcs[i], tempcs[i], false);
- }
- }
- @Override
- public void onSurfaceCreated(SurfaceHolder holder) {
- // TODO Auto-generated method stub
- super.onSurfaceCreated(holder);
- isft=true;
- }
- @Override
- public void onSurfaceChanged(SurfaceHolder holder, int format,
- int width, int height) {
- // TODO Auto-generated method stub
- super.onSurfaceChanged(holder, format, width, height);
- isft=true;
- slower();
- drawframe();
- }
- protected void drawframe() {
- // TODO Auto-generated method stub
- SurfaceHolder sh=getSurfaceHolder();
- Canvas dra=null;
- try {
- dra = sh.lockCanvas();
- if (dra != null) {
- if(isft)
- {
- scw=dra.getWidth();
- sch=dra.getHeight();
- update();
- }
- isft=false;
- dra.drawBitmap(bg, 0, 0, null);
- drawsnow(dra,noofsnows);
- }
- }
- catch (Exception e) {
- e.printStackTrace();
- }
- finally {
- if (dra != null)
- sh.unlockCanvasAndPost(dra);
- }
- slower();
- }
- private void drawsnow(Canvas dra,int n) {
- // TODO Auto-generated method stub
- for(int i=0;i<n;i++)
- {
- dra.drawBitmap(te[i], x[i]-(te[i].getWidth()/2), y[i]-(te[i].getHeight()/2), null);
- //If Clicked
- if(cx[i]!=-1&&cx[i]!=-1)
- {
- dra.drawBitmap(ts[i%6], cx[i]-(ts[i%6].getWidth()/2), cy[i]-(ts[i%6].getHeight()/2), null);
- if(cy[i]<sch)
- cy[i]+=speed[i];
- else
- {
- cx[i]=-1;
- cy[i]=-1;
- }
- }
- //Snow to and fro
- if(isr==0&&x[i]!=140)
- x[i]+=1;
- else
- isr=1;
- if(isr==1&&x[i]!=120)
- x[i]-=1;
- else
- isr=0;
- if(y[i]<dra.getHeight())
- y[i]+=speed[i];
- else
- {
- y[i]=0;
- x[i]=ran.nextInt(dra.getWidth());
- temps[i]=10+ran.nextInt(snowsize);
- speed[i]=4+ran.nextInt(2);
- }
- }
- }
- protected void slower() {
- // TODO Auto-generated method stub
- hand.removeCallbacks(iterate);
- if (isrun) {
- hand.postDelayed(iterate, 1000/30);
- }
- }
- @Override
- public void onSurfaceDestroyed(SurfaceHolder holder) {
- // TODO Auto-generated method stub
- super.onSurfaceDestroyed(holder);
- isrun=false;
- //isft=true;
- /*for(int i=0;i<noofsnows;i++)
- {
- te[i].recycle();
- ts[i%6].recycle();
- }
- snow.recycle();
- gift.recycle();*/
- hand.removeCallbacks(iterate);
- //Toast.makeText(getApplicationContext(), "Destroyed", Toast.LENGTH_SHORT).show();
- }
- @Override
- public void onTouchEvent(MotionEvent event) {
- // TODO Auto-generated method stub
- super.onTouchEvent(event);
- if(event.getAction()==MotionEvent.ACTION_DOWN)
- {
- isclicked=true;
- cx[nt]=event.getX();
- cy[nt]=event.getY();
- if(nt<=20)
- nt++;
- else
- nt=0;
- }
- }
- @Override
- public void onVisibilityChanged(boolean visible) {
- // TODO Auto-generated method stub
- super.onVisibilityChanged(visible);
- isrun=visible;
- if(isrun)
- {
- isft=true;
- slower();
- drawframe();
- }
- else
- {
- hand.removeCallbacks(iterate);
- }
- }
- }
- }
Add Comment
Please, Sign In to add comment