cybersa

Live Wallpaper

Dec 15th, 2012
216
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 5.84 KB | None | 0 0
  1. package com.example.test;
  2.  
  3. import java.io.File;
  4. import java.util.Random;
  5.  
  6. import android.content.Context;
  7. import android.content.SharedPreferences;
  8. import android.graphics.Bitmap;
  9. import android.graphics.BitmapFactory;
  10. import android.graphics.Canvas;
  11. import android.graphics.Color;
  12. import android.os.Environment;
  13. import android.os.Handler;
  14. import android.preference.PreferenceManager;
  15. import android.service.wallpaper.WallpaperService;
  16. import android.util.Log;
  17. import android.view.Display;
  18. import android.view.MotionEvent;
  19. import android.view.SurfaceHolder;
  20. import android.view.WindowManager;
  21. import android.widget.Toast;
  22.  
  23. public class CybWallpaper extends WallpaperService {
  24.  
  25.     int noofsnows=30;
  26.     int x[]=new int[100],y[]=new int[100],speed[]=new int[100],nt=0;
  27.     int isr=0;
  28.     int scw,sch,snowsize=20;
  29.     float cx[]=new float[100],cy[]=new float[100];
  30.     int temps[]=new int[100],tempcs[]=new int[100];
  31.     boolean isft=true,isclicked=false;
  32.     Bitmap snow,bg,gift;
  33.     SharedPreferences settings;
  34.     Bitmap[] te=new Bitmap[100],ts=new Bitmap[6];
  35.     boolean isrun;
  36.     int gifts[]={R.drawable.g1,R.drawable.g2,R.drawable.g3,R.drawable.g4,R.drawable.g5,R.drawable.g6};
  37.    
  38.    
  39.     @Override
  40.     public Engine onCreateEngine() {
  41.         return new Mywall();
  42.     }
  43.    
  44.     public class Mywall extends Engine
  45.     {
  46.    
  47.         Handler hand=new Handler();
  48.         Random ran=new Random();
  49.         Runnable iterate=new Runnable()
  50.         {
  51.             @Override
  52.             public void run() {
  53.                 drawframe();
  54.             }
  55.            
  56.         };
  57.        
  58.         public void update()
  59.         {
  60.             snow=BitmapFactory.decodeResource(getResources(), R.drawable.s1);
  61.             //Background image
  62.             settings=PreferenceManager.getDefaultSharedPreferences(getBaseContext());
  63.             if(settings.getBoolean("cusimage", false))
  64.             {
  65.                
  66.                 File newImg=new File(Environment.getExternalStorageDirectory().getAbsolutePath()+"/cyb/livewallpaper.jpg");
  67.                 if(newImg.exists())
  68.                 {
  69.                     bg=BitmapFactory.decodeFile(newImg.toString());
  70.                 }
  71.                 else
  72.                     bg=BitmapFactory.decodeResource(getResources(), R.drawable.b1);
  73.             }
  74.             else
  75.                 bg=BitmapFactory.decodeResource(getResources(), R.drawable.b1);
  76.            
  77.             //Snows
  78.             noofsnows=Integer.parseInt(settings.getString("noofsnow", "30"));
  79.             for(int i=0;i<noofsnows&&isft;i++)
  80.             {  
  81.                 x[i]=ran.nextInt(scw);
  82.                 y[i]=ran.nextInt(sch);
  83.                 temps[i]=(10+ran.nextInt(snowsize));
  84.                 tempcs[i]=(50+ran.nextInt(40));
  85.                 speed[i]=(4+ran.nextInt(4));
  86.                 cx[i]=-1;
  87.                 cy[i]=-1;
  88.                
  89.                 te[i]=Bitmap.createScaledBitmap(snow, temps[i], temps[i], false);
  90.                 gift=BitmapFactory.decodeResource(getResources(), gifts[ran.nextInt(5)]);
  91.                 ts[(i%6)]=Bitmap.createScaledBitmap(gift, tempcs[i], tempcs[i], false);
  92.             }
  93.            
  94.         }
  95.        
  96.         @Override
  97.         public void onSurfaceCreated(SurfaceHolder holder) {
  98.             // TODO Auto-generated method stub
  99.             super.onSurfaceCreated(holder);
  100.             isft=true;
  101.         }
  102.  
  103.         @Override
  104.         public void onSurfaceChanged(SurfaceHolder holder, int format,
  105.                 int width, int height) {
  106.             // TODO Auto-generated method stub
  107.             super.onSurfaceChanged(holder, format, width, height);
  108.             isft=true;
  109.             slower();
  110.             drawframe();
  111.         }
  112.  
  113.         protected void drawframe() {
  114.             // TODO Auto-generated method stub
  115.            
  116.             SurfaceHolder sh=getSurfaceHolder();
  117.             Canvas dra=null;
  118.                try {
  119.                   dra = sh.lockCanvas();
  120.                   if (dra != null) {
  121.                         if(isft)
  122.                         {
  123.                             scw=dra.getWidth();
  124.                             sch=dra.getHeight();
  125.                             update();
  126.                         }
  127.                        
  128.                         isft=false;
  129.                         dra.drawBitmap(bg, 0, 0, null);
  130.                         drawsnow(dra,noofsnows);                   
  131.                   }
  132.                }
  133.                catch (Exception e) {
  134.                     e.printStackTrace();
  135.                 }
  136.                finally {
  137.                   if (dra != null)
  138.                      sh.unlockCanvasAndPost(dra);
  139.                }
  140.                slower();
  141.         }
  142.  
  143.         private void drawsnow(Canvas dra,int n) {
  144.             // TODO Auto-generated method stub 
  145.             for(int i=0;i<n;i++)
  146.             {
  147.                
  148.                 dra.drawBitmap(te[i], x[i]-(te[i].getWidth()/2), y[i]-(te[i].getHeight()/2), null);
  149.                 //If Clicked
  150.                 if(cx[i]!=-1&&cx[i]!=-1)
  151.                 {
  152.  
  153.                     dra.drawBitmap(ts[i%6], cx[i]-(ts[i%6].getWidth()/2), cy[i]-(ts[i%6].getHeight()/2), null);
  154.                     if(cy[i]<sch)
  155.                         cy[i]+=speed[i];
  156.                     else
  157.                     {
  158.                         cx[i]=-1;
  159.                         cy[i]=-1;
  160.                     }
  161.                 }
  162.        
  163.                
  164.                 //Snow to and fro
  165.                 if(isr==0&&x[i]!=140)
  166.                     x[i]+=1;
  167.                 else
  168.                     isr=1;
  169.                
  170.                 if(isr==1&&x[i]!=120)
  171.                     x[i]-=1;
  172.                 else
  173.                     isr=0;
  174.                
  175.                 if(y[i]<dra.getHeight())
  176.                     y[i]+=speed[i];
  177.                 else
  178.                 {
  179.                     y[i]=0;
  180.                     x[i]=ran.nextInt(dra.getWidth());
  181.                     temps[i]=10+ran.nextInt(snowsize);
  182.                     speed[i]=4+ran.nextInt(2);
  183.                 }
  184.             }
  185.            
  186.         }
  187.  
  188.         protected void slower() {
  189.             // TODO Auto-generated method stub
  190.             hand.removeCallbacks(iterate);
  191.              if (isrun) {
  192.                 hand.postDelayed(iterate, 1000/30);
  193.              }
  194.              
  195.         }
  196.  
  197.         @Override
  198.         public void onSurfaceDestroyed(SurfaceHolder holder) {
  199.             // TODO Auto-generated method stub
  200.             super.onSurfaceDestroyed(holder);
  201.             isrun=false;
  202.             //isft=true;
  203.            
  204.             /*for(int i=0;i<noofsnows;i++)
  205.             {
  206.                 te[i].recycle();
  207.                 ts[i%6].recycle();
  208.             }
  209.             snow.recycle();
  210.             gift.recycle();*/
  211.            
  212.             hand.removeCallbacks(iterate);
  213.             //Toast.makeText(getApplicationContext(), "Destroyed", Toast.LENGTH_SHORT).show();
  214.         }
  215.  
  216.         @Override
  217.         public void onTouchEvent(MotionEvent event) {
  218.             // TODO Auto-generated method stub
  219.             super.onTouchEvent(event);
  220.             if(event.getAction()==MotionEvent.ACTION_DOWN)
  221.             {
  222.                 isclicked=true;
  223.                 cx[nt]=event.getX();
  224.                 cy[nt]=event.getY();
  225.                 if(nt<=20)
  226.                 nt++;
  227.                 else
  228.                     nt=0;
  229.             }
  230.         }
  231.  
  232.         @Override
  233.         public void onVisibilityChanged(boolean visible) {
  234.             // TODO Auto-generated method stub
  235.             super.onVisibilityChanged(visible);
  236.             isrun=visible;
  237.             if(isrun)
  238.             {
  239.                 isft=true;
  240.                 slower();
  241.                 drawframe();
  242.             }
  243.             else
  244.             {
  245.                 hand.removeCallbacks(iterate);
  246.             }
  247.         }
  248.        
  249.     }
  250.  
  251. }
Add Comment
Please, Sign In to add comment