Advertisement
MarMar_IV

Untitled

Jan 25th, 2015
202
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 4.65 KB | None | 0 0
  1. package cz.wz.marmarworld.sortnumbers;
  2.  
  3. import android.graphics.Canvas;
  4. import android.graphics.Color;
  5. import android.graphics.Paint;
  6. import android.support.v7.app.ActionBarActivity;
  7. import android.os.Bundle;
  8. import android.util.Log;
  9. import android.view.Menu;
  10. import android.view.MenuItem;
  11. import android.view.MotionEvent;
  12. import android.view.SurfaceHolder;
  13. import android.view.SurfaceView;
  14. import android.view.View;
  15. import android.widget.Toast;
  16.  
  17. import java.util.ArrayList;
  18. import java.util.List;
  19. import java.util.Random;
  20. import java.util.Timer;
  21. import java.util.TimerTask;
  22.  
  23. public class GameActivity extends ActionBarActivity implements SurfaceHolder.Callback, View.OnClickListener, View.OnTouchListener{
  24.  
  25.     private static final String TAG_DRAWING = "SurfaceView";
  26.  
  27.     SurfaceView image;
  28.  
  29.     List<NumberBouble> ballList = new ArrayList<NumberBouble>();
  30.  
  31.     Timer moveTimer;
  32.     TimerTask moveTimer_task;
  33.  
  34.     @Override
  35.     protected void onCreate(Bundle savedInstanceState) {
  36.         super.onCreate(savedInstanceState);
  37.         setContentView(R.layout.activity_game);
  38.  
  39.         image = (SurfaceView) findViewById(R.id.gameactivity_surfaceView);
  40.  
  41.         image.getHolder().addCallback(this);
  42.         image.setOnTouchListener(this);
  43.  
  44.         Random r = new Random();
  45.         for(int i=0;i<10;i++){
  46.             float radius = (r.nextFloat()*20.0f)+30.0f;
  47.             NumberBouble nb = new NumberBouble(1000,Color.RED, radius);
  48.             nb.setPosition(((i+1)%5)*100, ((i+5)/5)*100);
  49.  
  50.             ballList.add(nb);
  51.         }
  52.  
  53.  
  54.  
  55.  
  56.  
  57.         moveTimer = new Timer();
  58.         moveTimer_task = new TimerTask() {
  59.             @Override
  60.             public void run() {
  61.                 float step = 4.0f;
  62.  
  63.                 for(NumberBouble nb: ballList){
  64.                     nb.setPercent(nb.getPercent()+step);
  65.                 }
  66.                 tryDrawing(image.getHolder());
  67.             }
  68.         };
  69.     }
  70.  
  71.  
  72.     @Override
  73.     public void onStart(){
  74.         super.onStart();
  75.     }
  76.  
  77.     @Override
  78.     protected void onResume() {
  79.         // TODO Auto-generated method stub
  80.         super.onResume();
  81.     }
  82.  
  83.     @Override
  84.     protected void onPause() {
  85.         // TODO Auto-generated method stub
  86.         super.onPause();
  87.     }
  88.  
  89.     @Override
  90.     public boolean onCreateOptionsMenu(Menu menu) {
  91.         // Inflate the menu; this adds items to the action bar if it is present.
  92.         getMenuInflater().inflate(R.menu.menu_game, menu);
  93.         return true;
  94.     }
  95.  
  96.     @Override
  97.     public boolean onOptionsItemSelected(MenuItem item) {
  98.         // Handle action bar item clicks here. The action bar will
  99.         // automatically handle clicks on the Home/Up button, so long
  100.         // as you specify a parent activity in AndroidManifest.xml.
  101.         int id = item.getItemId();
  102.  
  103.         //noinspection SimplifiableIfStatement
  104.         if (id == R.id.action_settings) {
  105.             return true;
  106.         }
  107.  
  108.         return super.onOptionsItemSelected(item);
  109.     }
  110.  
  111.     @Override
  112.     public void surfaceCreated(SurfaceHolder holder) {
  113.         tryDrawing(holder);
  114.  
  115.         moveTimer.schedule(moveTimer_task,1,5);
  116.     }
  117.  
  118.     @Override
  119.     public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) {
  120.  
  121.     }
  122.  
  123.     @Override
  124.     public void surfaceDestroyed(SurfaceHolder holder) {
  125.  
  126.     }
  127.  
  128.     @Override
  129.     public void onClick(View v) {
  130.  
  131.     }
  132.  
  133.     @Override
  134.     public boolean onTouch(View v, MotionEvent event) {
  135.         if(event.getAction() == MotionEvent.ACTION_UP){
  136.             Log.d("aaaaa", Integer.toString((int) event.getX()));
  137.             Log.d("aaaaa", Integer.toString((int) event.getY()));
  138.             for(NumberBouble nb: ballList){
  139.                 if(nb.getRect().contains((int) event.getX(), (int) event.getY())){
  140.                     //Toast.makeText(this, nb.toString(), Toast.LENGTH_LONG).show();
  141.                 }
  142.             }
  143.  
  144.             return true;
  145.         }
  146.  
  147.         return false;
  148.     }
  149.  
  150.     private void tryDrawing(SurfaceHolder holder) {
  151.         //Log.i(TAG_DRAWING, "Trying to draw...");
  152.  
  153.         Canvas canvas = holder.lockCanvas();
  154.         if (canvas == null) {
  155.             //Log.e(TAG_DRAWING, "Cannot draw onto the canvas as it's null");
  156.         } else {
  157.             //Log.i(TAG_DRAWING, "Drawing...");
  158.  
  159.             Paint p = new Paint();
  160.             //p.setStyle(Paint.Style.FILL_AND_STROKE);
  161.  
  162.             canvas.drawRGB(51, 102, 204);
  163.             for(NumberBouble nb: ballList){
  164.                 canvas.drawBitmap(nb.getBitmap(),nb.getPosition().x,nb.getPosition().y,p);
  165.             }
  166.  
  167.             holder.unlockCanvasAndPost(canvas);
  168.         }
  169.     }
  170. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement