Нужно реализовать, чтоб в основном потоке можно было передвигать один элемент класса Draw, а в другом потоке как-бы летали по экрану еще несколько (есть похожие игры с кубиками).С одним элементом проблем нет, а вот как реализовать остальные, подскажите, пожалуйста.
class MyView extends View {
Paint paint;
// координаты для рисования квадрата
float x = 100;
float y = 100;
int side = 100;
// переменные для перетаскивания
boolean drag = false;
float dragX = 0;
float dragY = 0;
public MyView(Context context) {
super(context);
paint = new Paint();
}
@Override
protected void onDraw(final Canvas canvas) {
// рисуем квадрат
paint.setColor(Color.GREEN);
canvas.drawRect(x, y, x+side, y+side, paint);
}
@Override
public boolean onTouchEvent(MotionEvent event) {
// координаты Touch-события
float evX = event.getX();
float evY = event.getY();
Log.d(TAG, "onTouchEvent: evX: " + evX + " evY: " + evY);
switch (event.getAction()){
// касание началось
case MotionEvent.ACTION_DOWN:
// если касание было начато в пределах квадрата
if(evX >= x && evX <= x + side && evY >= y && evY <= y + side){
// включаем режим перетаскивания
drag = true;
// разница между левым верхним углом квадрата и точкой касания
dragX = evX - x;
dragY = evY - y;
}
break;
// тащим
case MotionEvent.ACTION_MOVE:
// если режим перетаскивания включен
if(drag){
DisplayMetrics displayMetrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(displayMetrics);
int w = displayMetrics.widthPixels;
int h = displayMetrics.heightPixels;
// определеяем новые координаты для рисования
x = evX - dragX;
y = evY - dragY;
if (x > w-100) x = w-100;
if (y > h-260) y = h-260;
if(x<0) x=0;
if(y<0) y=0;
Log.d(TAG, "w = " + w + " h = " + h);
Log.d(TAG, "x = " + x + " y = " + y);
// перерисовываем экран
invalidate();
}
break;
// касание завершено
case MotionEvent.ACTION_UP:
// выключаем режим перетаскивания
drag = false;
break;
}
return true;
}
}
Оборудование для ресторана: новинки профессиональной кухонной техники
Частный дом престарелых в Киеве: комфорт, забота и профессиональный уход
На браузерах Opera, Chrome не срабатывает onclick на прозрачный блок (за ним скриншот видео)Работает на Explorer, Firefox
Как можно использую один объект, передвигаться по xml документу Например с кодом:
Я пытаюсь расшифровать файл *ovpn который зашифрованный с помощью команды openssl enc -in infile
Есть 10000 копеек, которые нужно привести к виду 10000 рублей