Случайное размещение элементов
Случайное размещение элементов
Здравствуйте! Необходимо случайным образом задать 10 элементов(например картинок) на раб. области
есть ли свойство позволяющие случайно задавать позицию или для этого надо писать метод...если да то какой??))
за ранее спс!
есть ли свойство позволяющие случайно задавать позицию или для этого надо писать метод...если да то какой??))
за ранее спс!
Re: Случайное размещение элементов
Случайно задавать размещение поможет рандом, напишите свой метод.
Например, у вас картинки имеют размеры imageWidth и imageHeight. Тогда координаты левого верхнего угла x,y для каждой картинки можно получить так:
Если вам необходимо что бы картинки не пересекались, то во-первых их надо где-то хранить, а во-вторых при расчете координат для каждой картинки необходимо проверять все ее 4 стороны на попадание в уже существующие картинки.
Дальше конкретизировать не вижу смысла, не совсем ясна ваша задача
Например, у вас картинки имеют размеры imageWidth и imageHeight. Тогда координаты левого верхнего угла x,y для каждой картинки можно получить так:
Код: Выделить всё
int imageWidth = 10;
int imageHeight = 10;
DisplayMetrics displaymetrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(displaymetrics);
int height = displaymetrics.heightPixels; // вместо height и width экрана может быть высота
int width = displaymetrics.widthPixels; // и ширина вашего родительского элемента
Random r = new Random();
int x = r.nextInt(width - imageWidth);
int y = r.nextInt(height - imageHeight);
Дальше конкретизировать не вижу смысла, не совсем ясна ваша задача
Re: Случайное размещение элементов
Спасибо)) Не понял только как точки x и у связать с картинкой(например ImageView)
- KamiSempai
- Сообщения: 1339
- Зарегистрирован: 17 фев 2012, 21:23
- Откуда: Мордор
Re: Случайное размещение элементов
Что именно Вы хотите сделать? Картинки должны распологаться сеткой и случайно разбросаны по экрану?
R.id.team
Хватит таскать макулатуру на тренировку! Используй T Note.
Хватит таскать макулатуру на тренировку! Используй T Note.
Re: Случайное размещение элементов
случайно разбросаны по экрану!
- KamiSempai
- Сообщения: 1339
- Зарегистрирован: 17 фев 2012, 21:23
- Откуда: Мордор
Re: Случайное размещение элементов
Тогда, наверно, лучше расположить на экране 1 элемент, например ImageView, и рисовать все изображения на нем. Координаты можно вычислять так, как сказал andev. Но это уже графика, а по графике, пока, на этом сайте уроков нет.
На смом деле есть слой AbsoluteLayout на котором нужно точно указывать положения элементов, но он уже давно устарел и его лучше не использовать.
Еще один вопрос. Изображения должны перемещаться и реагировать на нажатие?
На смом деле есть слой AbsoluteLayout на котором нужно точно указывать положения элементов, но он уже давно устарел и его лучше не использовать.
Еще один вопрос. Изображения должны перемещаться и реагировать на нажатие?
R.id.team
Хватит таскать макулатуру на тренировку! Используй T Note.
Хватит таскать макулатуру на тренировку! Используй T Note.
Re: Случайное размещение элементов
хм...да, изображения должны перемещаться причем с разной скоростью и при взаимодействии исчезать это еще правда один вопрос))
а где можно почитать про графику и как это все можно реализовать?
а где можно почитать про графику и как это все можно реализовать?
Re: Случайное размещение элементов
Если перемещаться и взаимодействовать, то это быстрее всего вы хотите сделать игру, я угадал?
Почитать можно здесь
http://www.android10.org/index.php/arti ... oid-part-i
или где угодно, воспользовавшись поиском
Почитать можно здесь
http://www.android10.org/index.php/arti ... oid-part-i
или где угодно, воспользовавшись поиском
- KamiSempai
- Сообщения: 1339
- Зарегистрирован: 17 фев 2012, 21:23
- Откуда: Мордор
Re: Случайное размещение элементов
Вот сайт: http://davidmd.ru/%D1%83%D1%80%D0%BE%D0 ... E-android/
Там человек подробно описывает создание движка для игры.
Там человек подробно описывает создание движка для игры.
R.id.team
Хватит таскать макулатуру на тренировку! Используй T Note.
Хватит таскать макулатуру на тренировку! Используй T Note.
Re: Случайное размещение элементов
угадал))
пошел читать....
пошел читать....
Re: Случайное размещение элементов
что то не работает этот пример кода(( точнее работает но условие width - imageWidth нормально не выполняется...есть случае когда картинка выходит за приделы экрана или полностью или частично((andev писал(а):Случайно задавать размещение поможет рандом, напишите свой метод.
Например, у вас картинки имеют размеры imageWidth и imageHeight. Тогда координаты левого верхнего угла x,y для каждой картинки можно получить так:
Если вам необходимо что бы картинки не пересекались, то во-первых их надо где-то хранить, а во-вторых при расчете координат для каждой картинки необходимо проверять все ее 4 стороны на попадание в уже существующие картинки.Код: Выделить всё
int imageWidth = 10; int imageHeight = 10; DisplayMetrics displaymetrics = new DisplayMetrics(); getWindowManager().getDefaultDisplay().getMetrics(displaymetrics); int height = displaymetrics.heightPixels; // вместо height и width экрана может быть высота int width = displaymetrics.widthPixels; // и ширина вашего родительского элемента Random r = new Random(); int x = r.nextInt(width - imageWidth); int y = r.nextInt(height - imageHeight);
Дальше конкретизировать не вижу смысла, не совсем ясна ваша задача
Что только не перепробовал......не хочет((
использовал:
Код: Выделить всё
public class MainActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(new Panel(this));
}
class Panel extends View {
public Panel(Context context) {
super(context);
}
@Override
public void onDraw(Canvas canvas) {
Bitmap t_fish = BitmapFactory.decodeResource(getResources(), R.drawable.t_fish);
Bitmap x_fish = BitmapFactory.decodeResource(getResources(), R.drawable.x_fish);
canvas.drawColor(Color.BLUE);
int image_h_t = t_fish.getHeight();
int image_w_t = t_fish.getWidth();
int image_h_x = x_fish.getHeight();
int image_w_x = x_fish.getWidth();
DisplayMetrics displaymetrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(displaymetrics);
// int height = displaymetrics.heightPixels;
// int width = displaymetrics.widthPixels;
int height= canvas.getHeight();
int width = canvas.getWidth();
Random r = new Random();
int z = height-image_h_t;
int x = width-image_w_t;
int y1 = r.nextInt(z);
int x1 = r.nextInt(x);
int y2 = r.nextInt(height-image_h_x);
int x2 = r.nextInt(width-image_w_x);
// if((y1 < height - image_h_t) && (x1 < width - image_w_t)){
canvas.drawBitmap(t_fish, x1, y1, null);
// }
// if (y2 < height - image_h_x && x2 < width - image_w_x){
canvas.drawBitmap(x_fish, x2, y2, null);
// }
}
}
}Re: Случайное размещение элементов
давайте, что-ли, архив проекта.
- KamiSempai
- Сообщения: 1339
- Зарегистрирован: 17 фев 2012, 21:23
- Откуда: Мордор
Re: Случайное размещение элементов
Очевидно проблема в методе drawBitmap. В ОФИЦИАЛЬНОЙ ДОКУМЕНТАЦИИ гугла говорится примерно следующее:
Видимо при рисовании размер картинок изменяется.Если bitmap и canvas имеют различную плотность, эта функция "позаботится" о автоматическом масштабировании bitmap до той же плотности как у canvas.
R.id.team
Хватит таскать макулатуру на тренировку! Используй T Note.
Хватит таскать макулатуру на тренировку! Используй T Note.