Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package cz.wz.marmarworld.sortnumbers;
- import android.graphics.Canvas;
- import android.graphics.Color;
- import android.graphics.Paint;
- import android.support.v7.app.ActionBarActivity;
- import android.os.Bundle;
- import android.util.Log;
- import android.view.Menu;
- import android.view.MenuItem;
- import android.view.MotionEvent;
- import android.view.SurfaceHolder;
- import android.view.SurfaceView;
- import android.view.View;
- import android.widget.Toast;
- import java.util.ArrayList;
- import java.util.List;
- import java.util.Random;
- import java.util.Timer;
- import java.util.TimerTask;
- public class GameActivity extends ActionBarActivity implements SurfaceHolder.Callback, View.OnClickListener, View.OnTouchListener{
- private static final String TAG_DRAWING = "SurfaceView";
- SurfaceView image;
- List<NumberBouble> ballList = new ArrayList<NumberBouble>();
- Timer moveTimer;
- TimerTask moveTimer_task;
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_game);
- image = (SurfaceView) findViewById(R.id.gameactivity_surfaceView);
- image.getHolder().addCallback(this);
- image.setOnTouchListener(this);
- Random r = new Random();
- for(int i=0;i<10;i++){
- float radius = (r.nextFloat()*20.0f)+30.0f;
- NumberBouble nb = new NumberBouble(1000,Color.RED, radius);
- nb.setPosition(((i+1)%5)*100, ((i+5)/5)*100);
- ballList.add(nb);
- }
- moveTimer = new Timer();
- moveTimer_task = new TimerTask() {
- @Override
- public void run() {
- float step = 4.0f;
- for(NumberBouble nb: ballList){
- nb.setPercent(nb.getPercent()+step);
- }
- tryDrawing(image.getHolder());
- }
- };
- }
- @Override
- public void onStart(){
- super.onStart();
- }
- @Override
- protected void onResume() {
- // TODO Auto-generated method stub
- super.onResume();
- }
- @Override
- protected void onPause() {
- // TODO Auto-generated method stub
- super.onPause();
- }
- @Override
- public boolean onCreateOptionsMenu(Menu menu) {
- // Inflate the menu; this adds items to the action bar if it is present.
- getMenuInflater().inflate(R.menu.menu_game, menu);
- return true;
- }
- @Override
- public boolean onOptionsItemSelected(MenuItem item) {
- // Handle action bar item clicks here. The action bar will
- // automatically handle clicks on the Home/Up button, so long
- // as you specify a parent activity in AndroidManifest.xml.
- int id = item.getItemId();
- //noinspection SimplifiableIfStatement
- if (id == R.id.action_settings) {
- return true;
- }
- return super.onOptionsItemSelected(item);
- }
- @Override
- public void surfaceCreated(SurfaceHolder holder) {
- tryDrawing(holder);
- moveTimer.schedule(moveTimer_task,1,5);
- }
- @Override
- public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) {
- }
- @Override
- public void surfaceDestroyed(SurfaceHolder holder) {
- }
- @Override
- public void onClick(View v) {
- }
- @Override
- public boolean onTouch(View v, MotionEvent event) {
- if(event.getAction() == MotionEvent.ACTION_UP){
- Log.d("aaaaa", Integer.toString((int) event.getX()));
- Log.d("aaaaa", Integer.toString((int) event.getY()));
- for(NumberBouble nb: ballList){
- if(nb.getRect().contains((int) event.getX(), (int) event.getY())){
- //Toast.makeText(this, nb.toString(), Toast.LENGTH_LONG).show();
- }
- }
- return true;
- }
- return false;
- }
- private void tryDrawing(SurfaceHolder holder) {
- //Log.i(TAG_DRAWING, "Trying to draw...");
- Canvas canvas = holder.lockCanvas();
- if (canvas == null) {
- //Log.e(TAG_DRAWING, "Cannot draw onto the canvas as it's null");
- } else {
- //Log.i(TAG_DRAWING, "Drawing...");
- Paint p = new Paint();
- //p.setStyle(Paint.Style.FILL_AND_STROKE);
- canvas.drawRGB(51, 102, 204);
- for(NumberBouble nb: ballList){
- canvas.drawBitmap(nb.getBitmap(),nb.getPosition().x,nb.getPosition().y,p);
- }
- holder.unlockCanvasAndPost(canvas);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement