Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

surfaceview multiple threads - Программирование Android

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Программирование Android Обновляемая БД http://www.cyberforum.ru/android-dev/thread926487.html
Привет программисты. Только недавно начал программировать, поэтому жду вашей помощи. Хочу создать обновляемую БД. На сколько я понимаю, что в одной базе данных может быть несколько таблиц, так ли...
Программирование Android in-app billing Не получается внедрить встроенный платеж , как по инструции: http://www.techotopia.com/index.php/Integrating_Google_Play_In-app_Billing_into_an_Android_Application_%E2%80%93_A_Tutorial Выдает... http://www.cyberforum.ru/android-dev/thread926465.html
Два события onClick в одном item Программирование Android
Доброго времени суток . У меня есть listView , у него назначен BaseAdapter , в item'e есть две кнопки , нужно как-то обрабатывать события нажатия из Activity(когда была одна кнопка обрабатывал в...
Программирование Android Почему появляются предупреждения на контролах?
С панели Palette на экран разместил контролы, но появляются предупреждения в виде восклицательных знаков, а внизу надписи " Hardcoded string "Старт", should use @string resource". Подскажите,...
Программирование Android Взаимосвязь компьютера и андроид-устройства http://www.cyberforum.ru/android-dev/thread926340.html
Здравствуйте. Мне нужно написать приложение для android-устройства. Нужно что бы приложение принимало/отправляло, данные (числа) с/на компьютер (как я понимаю связь происводится через WiFi). ...
Программирование Android Есть ли в ADT комбобокс? Не нашел в Form Widgets и в других контролах ADT комбобокс (выпадающий список). Есть кнопки, чекбокс, спинеры, а вот комбобокс не нашел. подробнее

Показать сообщение отдельно
RC_86
Сообщений: n/a

surfaceview multiple threads - Программирование Android

21.07.2013, 13:50. Просмотров 458. Ответов 0
Метки (Все метки)

Доброго времени суток.Пытаюсь разобраться с surfaceview.
Суть задачи следующая ,єсть два объекта, которые я запускаю в отдельных потоках.
В каждом обектерисуется изображение (мячик).


Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
public class GameView extends SurfaceView implements SurfaceHolder.Callback{
 
public GameView(Context context) {
super(context);
getHolder().addCallback(this);
}
 
@Override
public void surfaceChanged(SurfaceHolder holder, int format, int width,
int height) {
// TODO Auto-generated method stub
}
 
@Override
public void surfaceCreated(SurfaceHolder holder) {
// TODO Auto-generated method stub
 
Thread oneThead = new Thread(new OneThread(getHolder(), getResources()));
oneThead.start();
 
Thread secondThead = new Thread(new SecondThread(getHolder(), getResources()));
secondThead.start();
 
}
}
А вот сами потоки.
Первый
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
public class OneThread implements Runnable{
private SurfaceHolder surfaceHolder;
private Bitmap brazukaBall;
 
 
public OneThread(SurfaceHolder surfaceHolder, Resources resources) {
this.surfaceHolder = surfaceHolder;
imageOne = BitmapFactory.decodeResource(resources, R.drawable.imageOne);
}
 
@Override
public void run() {
Canvas canvas;
canvas = surfaceHolder.lockCanvas(null);
canvas.drawBitmap(imageOne,68,87,null);
surfaceHolder.unlockCanvasAndPost(canvas);
}
 
}
Второй
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
public class SecondThread implements Runnable{
private SurfaceHolder surfaceHolder;
private Bitmap brazukaBall;
 
 
public SecondThread(SurfaceHolder surfaceHolder, Resources resources) {
this.surfaceHolder = surfaceHolder;
imageTwo = BitmapFactory.decodeResource(resources, R.drawable.imageTwo);
}
 
@Override
public void run() {
Canvas canvas;
canvas = surfaceHolder.lockCanvas(null);
canvas.drawBitmap(imageTwo,0,0,null);
surfaceHolder.unlockCanvasAndPost(canvas);
}
 
}
Проблема в том что на канвасе всегда изображения которое рисуется в SecondThread.Я так понял что канвас перезатераеться вторым изображением.
Я разделил на два отдельных потока, потому что в будущем там должна быть реализована анимация двух разных картинок.
Вопрос в том, как мне сделать так чтобы у меня две картинки НЕ перезатерали друг друга.
И вообще правильно создавать отдельные потоки?? В моем случае это будут два изображения которые движутся с разной скоростью и отражаются от стенок. Заранее большое спасибо за помощь
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru