2014-02-26 3 views
0

Я пытаюсь создать некоторую интерактивность в простом приложении, чтобы изменить положение изображения. После выполнения некоторых поисковых запросов я нашел, что должно быть способно выполнить эту работу, но я, похоже, не могу заставить что-то работать. С текущим кодом мой клиент потерпит крах, но я странно не получу никаких ошибок.Установить позицию ImageView - Android

Проверьте это link. Что я сделал не так?

Я использую following XML для рисования изображения

Я также попытался использовать это наряду с setX и setY методы, которые по умолчанию в ImageView, пока они не признаются вообще, когда я пытаюсь запустить. Поэтому я изучаю более сложные фрагменты кода.

+0

Эй, почему вы публикуете это на [Reddit] (http://www.reddit.com/r/androiddev/comments/1yzf2a/how_to_set_the_position_of_an_imageview/) в тщетной надежде получить быстрый ответ ... * просто sayin * – t0mm13b

+0

Четыре часа. Очень нетерпеливо, да. – Rellac

+0

* Интернет должен быть очень серьезным делом * ... – t0mm13b

ответ

2

Вы не можете отличить его от LinearLayout.LayoutParams до AbsoluteLayout.LayoutParams, это, вероятно, ошибка, которую вы получаете.

Измените AbsoluteLayout.LayoutParams на LinearLayout.LayoutParams, потому что изображениеView находится в линейномLayout, также AbsoluteLayout устарел.

Если вы хотите динамически перемещать представление (изменять положение), используйте свойства translateX и translateY.

Надеюсь, это поможет.

+0

Редактировать: Я могу запустить приложение, но я не могу получить ответ от своего изображения. Он просто сидит там счастливым, как larry, и я не получаю ошибок, только отсутствие взаимодействия. Есть ли у меня логическая ошибка? Скорее всего, но я не уверен, что это может быть ... – Rellac

+0

Это после того, как я изменил код для LinearLayout. – Rellac

0

После того, как вы включили в макет xml виджет (в вашем случае ImageView), он привязан к этому представлению. Легче (и хорошей практике) динамически добавлять виджеты, когда вам нужно перемещать/удалять/заменять их во время выполнения. Например, вы можете оставить контейнер RelativeLayout пустым в своем файле макета и добавить этот ImageView в свой метод onCreate(), используя RelativeLayout.addView().

0

Я думаю, что проще всего было бы (при использовании более чем 3.0),

imageView.animate().translateX() 

в animate() возвратит вам ViewPropertyAnimator.

Если вы используете FrameLayout, ваш подход LayoutParams также будет работать.

Смежные вопросы