Осваивая AndroidStudio, столкнулся с такой проблемой. Следующий код должен рисовать на экране бутылку, и далее с помощью многократного вызова fly() , например по таймеру, она должна лететь вниз. Что происходит на самом деле: ничего, просто белый пустой экран без каких-либо признаков жизни. Объясните, пожалуйста, что я здесь сделал не так?
public class Bottle {
ImageView bottle;
private float y;
private float size;
private float x;
public Bottle(MainActivity main) {
size =(float)(MainActivity.screenWidth/(Math.random()*5+5));
bottle = new ImageView(main);
main.addContentView(bottle,new RelativeLayout.LayoutParams((int)size, (int)size));
bottle.setImageResource(R.drawable.bottle);
y=size/2;
x = (float) Math.random()*(MainActivity.screenWidth -size)+size/2;
bottle.setY(y);
bottle.setX(x);
bottle.setScaleX(size);
bottle.setScaleY(size);
}
public void fly() {
if (y <= MainActivity.screenHeight + size / 2) {
y += 5;
bottle.setY(y);
}
}
}
В вашем случае, как мне кажется, самый простой способ, рисовать вашу бутылку на канве.
Вот тут неплохо расписано для начала.
http://startandroid.ru/ru/uroki/vse-uroki-spiskom/311-urok-141-risovanie-dostup-k-canvas.html
Манипулирование элементами UI интерфейса требует хороших знаний о типах разметки и контейнеров, много нюансов там.
А судя по вашему коду, вы в этом сильно плаваете :)
Сборка персонального компьютера от Artline: умный выбор для современных пользователей