Вниз  Android-программирование (1-ые посты)
- 1.12.2013 / 07:32
samodelkin
  Пользователь

samodelkin 
Сейчас: Offline
Помогите исправить, картинка не двигается:

import android.content.Context;
import android.content.res.Resources;
import android.view.View;
import android.graphics.*;
import android.os.Handler;

public class Canva extends View{
private int y;
private Bitmap bitmap;
private Handler handler;
private Thread thread;

public Canva(Context context) {
         super(context);
         y=0;
         bitmap = BitmapFactory.decodeResource(this.getResources(), R.drawable.ic_launcher);
        
         handler= new Handler() {
           public void handleMessage(android.os.Message msg) {
           invalidate();
           }
           };

         thread=new Thread(new Runnable() {
           public void run() {
           try {
           y++;
           thread.sleep(1000);
           handler.sendEmptyMessage(1);
           } catch (Exception e) {}
           }
           });
          thread.start();

}


protected void onDraw(Canvas canvas){
super.onDraw(canvas);
Paint paint = new Paint();
paint.setStyle(Paint.Style.FILL);
         // закрашиваем холст белым цветом
paint.setColor(Color.BLACK);
canvas.drawPaint(paint);
paint.setColor(Color.WHITE);
canvas.drawBitmap(bitmap, 0, y, paint);
}


}

Изменено samodelkin (1.12 / 07:34) (всего 1 раз)
- 1.12.2013 / 08:00
samodelkin
  Пользователь

samodelkin 
Сейчас: Offline
прошу вас помогите быстрее, иначе я сойду с ума, уже два дня не могу двигающуюся картинку сделать!!!
....
Разобрался с проблемой без использования Хандлера, сделал класс Руннабельным, добавил свой метод рун, и вызвал метод postInvalidate()

Изменено samodelkin (1.12 / 08:04) (всего 1 раз)
- 1.12.2013 / 08:07
samodelkin
  Пользователь

samodelkin 
Сейчас: Offline
Вот код если кому интересно:

import android.content.Context;
import android.content.res.Resources;
import android.view.View;
import android.graphics.*;
import android.os.*;

public class Canva extends View implements Runnable{
private int y;
private Bitmap bitmap;
private Thread thread;
private Handler h;

public Canva(Context context) {
         super(context);
         y=0;
         bitmap = BitmapFactory.decodeResource(this.getResources(), R.drawable.ic_launcher);
         thread=new Thread(this);
         thread.start();
}

public void run(){
while(true){
y++;
if (y>getHeight()-bitmap.getHeight()) y=0;
this.postInvalidate();
try{thread.sleep(10);}catch(Exception e){}
}
}





protected void onDraw(Canvas canvas){
super.onDraw(canvas);
Paint paint = new Paint();
paint.setStyle(Paint.Style.FILL);
         // закрашиваем холст белым цветом
paint.setColor(Color.BLACK);
canvas.drawPaint(paint);
paint.setColor(Color.WHITE);
canvas.drawBitmap(bitmap, 0, (float)y, paint);
}





}
- 1.12.2013 / 09:04
boNNdaR
  Пользователь

boNNdaR 
Сейчас: Offline
Для таких действий лутше использовать SurfaceView, посмотри в полезных кодах, я кидал когда-то.
- 1.12.2013 / 18:06
samodelkin
  Пользователь

samodelkin 
Сейчас: Offline
Скажите как в классе, наследованном от View сделать обработку удерживания пальца на сенсоре, а то использую onTouch, который срабатывает только один раз.
- 1.12.2013 / 19:57
Naik
  Пользователь

Naik 
Сейчас: Offline
samodelkin, засекать время например, между ACTION_DOWN и ACTION_UP в onTouch. Есть еще view.setOnLongClickListener(...)
Можешь попробоват если это твой кастомный View, то можешь переопределить onTouchEvent(...)

Изменено Naik (1.12 / 20:00) (всего 1 раз)
- 2.12.2013 / 10:23
samodelkin
  Пользователь

samodelkin 
Сейчас: Offline
Naik, спасибо. Скажите от какого класса лучше всего наследовать класс спрайта(имею ввиду чтобы были столкновения, кадры и т.д)?
- 2.12.2013 / 10:26
Naik
  Пользователь

Naik 
Сейчас: Offline
samodelkin, Ни от какого. Заводишь переменную Bitmap в классе Спрайт и делаешь с ней все что нужно
- 2.12.2013 / 10:28
samodelkin
  Пользователь

samodelkin 
Сейчас: Offline
Naik, сделал уже :) А как организовать в классе кадры и как прорисовывать определенный кадр с помощью drawBitmap?

Изменено samodelkin (2.12 / 10:28) (всего 1 раз)
- 2.12.2013 / 10:34
Naik
  Пользователь

Naik 
Сейчас: Offline
Тебе уже давали ссылку http://freehabr.ru/blog/android/2336.html
Наверх  Всего сообщений: 4453
Фильтровать сообщения
Поиск по теме
Файлы топика (184)