Как переместить изображение влево и вправо в разработке для Android (2)

Я спрашивал об этом раньше, но нет ответов, которые сработали для меня.

Как переместить изображение влево и вправо в разработке для Android


person noobHERE    schedule 06.06.2013    source источник
comment
Вам нужно перемещать изображение нажатием кнопки? или сенсорный тоже подходит для вас?   -  person Chintan Rathod    schedule 06.06.2013
comment
stackoverflow.com/questions/ 16865118/. проверьте, это может вам помочь. Вы должны четко объяснить свою проблему   -  person Raghunandan    schedule 06.06.2013
comment
comment
Могу дать совет. Сначала изучите основы, выполнив учебные руководства Hello World и поняв, как они работают. Затем научитесь писать хорошие вопросы. Это не очень хороший вопрос. Вы также должны работать с существующим вопросом, а не открывать новый.   -  person Simon    schedule 06.06.2013


Ответы (1)


Пожалуйста, используйте этот код:

В main.xml:

<ImageView 
    android:id="@+id/imageview"
    android:layout_width="wrap_content"
    android:layout_gravity="center"
    android:layout_height="wrap_content"
    android:background="@drawable/ic_launcher"/>

<Button 
    android:id="@+id/button"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Left"
    android:onClick="onClickLeft"/>

<Button 
    android:id="@+id/button"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Right"
    android:onClick="onClickRight"/>

А затем в файле .java поместите этот код:

public void onClickLeft(View view){
    ImageView t = (ImageView) findViewById(R.id.imageview);

    LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
            LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);

        params.gravity=3;

        t.setLayoutParams(params);
}

public void onClickRight(View view){
    ImageView t = (ImageView) findViewById(R.id.imageview);

    LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
            LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);

        params.gravity=5;

        t.setLayoutParams(params);
}

Это даст вам то, что вы ищете.

person Amrit    schedule 06.06.2013
comment
Я только что сделал ТОЧНО это, и у меня не было НИКАКИХ ошибок, поэтому я был очень доволен, но когда я запустил эмулятор, левая и правая кнопки абсолютно ничего не делали. Также после нескольких кликов мой эмулятор вылетает. Что я должен делать ? - person noobHERE; 06.06.2013
comment
подождите, нет, мой эмулятор не падает, моя программа падает. - person noobHERE; 06.06.2013
comment
Я попробовал на своем мобильном телефоне. Он работает нормально. Опубликуйте код, позвольте мне запустить и проверить на моем телефоне. - person Amrit; 06.06.2013
comment
Надеюсь, вы используете Linear Layout. - person Amrit; 06.06.2013
comment
Я ха-ха, я использовал родственника. Хорошо, я переключился на Linear и запустил код. Это сработало, но не совсем то, что я хотел. Он переносит вид изображения с левой стороны ВСЕ на правую сторону одним щелчком мыши, а не медленно перемещает его туда. Например, я хотел сделать ее похожей на платформер, например, на mario? Поэтому мне нужно, чтобы изображение медленно перемещалось с одной стороны на другую, а не полностью одновременно. - person noobHERE; 06.06.2013
comment
Вы знаете, как это сделать? заставить это идти медленно? - person noobHERE; 07.06.2013
comment
следующий поток может дать вам хорошее представление о том, как сделать то же самое. Он включает в себя анимацию stackoverflow.com /вопросы/16865118/ - person Amrit; 07.06.2013
comment
Кроме того, предложил бы вам дать четкое описание того, чего вы хотите достичь. Вы должны упомянуть об анимации медленного движения объекта влево/вправо. - person Amrit; 07.06.2013
comment
Я попытался посмотреть ветку, которую вы мне прислали, но я действительно не понимаю ее. Например, я не понимаю, какие части связаны с моей игрой, а какие не связаны с моей игрой. - person noobHERE; 07.06.2013