Прокрутка изображения в андроид

1

Я пишу такой код для автоматического прокрутки изображения:

scroll=(ImageView)findViewById(R.id.pesancredit);
    Thread t = new Thread(){
        public void run(){
            int y = scroll.getScrollY();
            int x = scroll.getScrollX();
            while(y<1600){
                scroll.scrollTo(x, y);
                y++;
                try {
                    sleep(1000/12);
                } catch (InterruptedException e) {
                }
            }
        }
    };
    t.start();

Но это не сработает. Кто-нибудь может мне помочь?

Теги:
scroll
imageview

2 ответа

1

Вам нужно вызвать метод scrollTo в потоке пользовательского интерфейса. Для этого вам нужно использовать обработчик. Что-то вроде этого должно работать:

// declare a class field:
final Handler h = new Handler();

// later:
scroll=(ImageView)findViewById(R.id.pesancredit);
Thread t = new Thread(){
    public void run(){
        int y = scroll.getScrollY();
        int x = scroll.getScrollX();
        while(y<1600){
            // need final values to create anonymous inner class
            final int X = x;
            final int Y = y;
            h.post(new Runnable() {
                public void run() {
                    scroll.scrollTo(X, Y);
                }
            });
            y++;
            try {
                sleep(1000/12);
            } catch (InterruptedException e) {
            }
        }
    }
};
t.start();
  • 0
    Большое спасибо! Это работает!
  • 1
    @ Бхарата -> пожалуйста, продолжайте принимать ответы, если они окажутся полезными для вас
0

Вы можете анимировать изображение примерно так:

Рез/аним/slide_out_left.xml

<set xmlns:android="http://schemas.android.com/apk/res/android">
    <translate 
        android:fromXDelta="0" 
        android:toXDelta="-300%p"
        android:duration="6000"/>
</set>

то в вашей деятельности:

scroll=(ImageView)findViewById(R.id.pesancredit);
scroll.setImageBitmap(yourImage);
Animation slideOutLeft = AnimationUtils.LoadAnimation(this, R.anim.slide_outleft);
scroll.startAnimation(slideOutLeft);

проверить это. http://developer.android.com/guide/topics/resources/animation-resource.html

Ещё вопросы

Сообщество Overcoder
Наверх
Меню