Относительно Imageview - PullRequest
0 голосов
/ 06 мая 2011

Дорогие все, я новичок в мобильной платформе Android.У меня есть 5 последовательностей просмотра изображений, как я анимирую эти изображения.т.е. 1-й должен быть виден, остальные должны быть невидимыми.Чем 2-й должен быть видимый отдых должен быть невидимым, как это должно повторяться ... Как я могу сделать ... Я использую относительное расположение ... Помощь приветствуется ....

Ответы [ 3 ]

0 голосов
/ 06 мая 2011

ЕСЛИ вам нужно переключить различные изображения (именно так я и интерпретировал ваш вопрос), проверьте ImageSwitcher

Или вы можете сделать это вручную, переключив ресурс изображения ImageView, запустив Thread или с таймером для большего удобства, но я полагаю, что приведенная выше ссылка будет проще для вас

0 голосов
/ 06 мая 2011

Как я понимаю, если вы хотите, чтобы все изображения были в одном и том же виде, вам нужно использовать AnimationDrawable Если вы хотите, чтобы каждое изображение отображалось в соответствующем ImageView, вы можете реализовать Runnable и его метод запуска set imageview1.setImage (null);и imageview2.setImage (что бы вы ни хотели) и каждый раз изменяйте ImageView, который вы устанавливаете, в соответствии с вашими желаниями.В конце метода run вы должны использовать метод handler.postAtTime (), чтобы снова запустить runnable в следующий раз, когда вы захотите.примечание: обработчик создается в вашей деятельности и передается в исполняемый файл в конструкторе или как вам угодно.Я надеюсь, что это было ясно.если нет, пожалуйста, дайте мне знать.


edit1Чтобы сделать несколько изображений в режиме анимирования, вы должны реализовать Runnable следующим образом


import android.app.Activity;
import android.os.Handler;
import android.os.SystemClock;
import android.widget.ImageView;

public class Animator implements Runnable {

    // handler to register the runnable
    private Handler handler;

    private Activity activity;
    // to know the current imageView that we will assign the current image to
    private int next_image_view;

    public Animator(Handler handler, Activity activity) {
        this.handler = handler;
        this.activity = activity;
        next_image_view = 0;
    }

    @Override
    public void run() {

        ImageView first = null;
        ImageView second = null;

        switch (next_image_view) {
        case 0:
            first = (ImageView) activity.findViewById(R.id.imageView1);
            second = (ImageView) activity.findViewById(R.id.imageView2);
            break;
        case 1:
            first = (ImageView) activity.findViewById(R.id.imageView2);
            second = (ImageView) activity.findViewById(R.id.imageView3);
            break;
        case 2:
            first = (ImageView) activity.findViewById(R.id.imageView3);
            second = (ImageView) activity.findViewById(R.id.imageView4);
            break;
        case 3:
            first = (ImageView) activity.findViewById(R.id.imageView4);
            second = (ImageView) activity.findViewById(R.id.imageView5);
            break;
        case 4:
            first = (ImageView) activity.findViewById(R.id.imageView5);
            second = (ImageView) activity.findViewById(R.id.imageView6);
            break;
        case 5:
            first = (ImageView) activity.findViewById(R.id.imageView6);
            second = (ImageView) activity.findViewById(R.id.imageView1);
            break;

        default:

            break;
        }

        if (first != null && second != null) {
            first.setBackgroundResource(0);
            second.setBackgroundResource(R.drawable.icon);
        }

        next_image_view++;
        if (next_image_view == 6) {
            // to start from the beginning again
            next_image_view = 0;
        }

        // here we post this runnable to be running again after 1 sec = 1000 MS
        handler.postAtTime(this, SystemClock.uptimeMillis() + 1000);
    }

}

и TestActivity следующим образом


import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.os.SystemClock;
import android.widget.ImageView;</p>

<p>public class TestActivity extends Activity{</p>

<pre><code>private Animator animator;
private Handler handler;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    setContentView(R.layout.animation_layout);

    ImageView view = (ImageView) findViewById(R.id.imageView1);
    view.setBackgroundResource(R.drawable.icon);
    handler = new Handler();
    animator = new Animator(handler, this);
    handler.postAtTime(animator, SystemClock.uptimeMillis() + 1000);
}

}

Ваш XML-файл должен содержать что-то с 6 изображениями с соответствующими именами.

0 голосов
/ 06 мая 2011

возможно, вам следует использовать GalleryView. Пример * +1003 *

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...