Мне бы хотелось, чтобы в фильмах был эффект "конечных титров", когда имена участников проектов плавно скользят снизу вверх.
Я думал о ScrollView, и это моя идея (очевидно, она не работает):
В onCreate:
sv = (ScrollView)findViewById(R.id.scroll_text);
при запуске:
@Override
public void onStart()
{
super.onStart();
sv.post(new Runnable() {
@Override
public void run() {
sv.fullScroll(ScrollView.FOCUS_DOWN);
}
});
}
В onWindowsFocusChanged:
@Override
public void onWindowFocusChanged(boolean hasFocus)
{
if (hasFocus)
{
int display_h = display.getHeight();
pos_y = display_h;
mScrollHandler.removeCallbacks(mUpdateScroll);
mScrollHandler.postDelayed(mUpdateScroll, 0);
}
else
{
mScrollHandler.removeCallbacks(mUpdateScroll);
}
}
А это для обработчика:
private Runnable mUpdateScroll = new Runnable() {
public void run() {
pos_y = pos_y - 1;
sv.scrollTo(0, pos_y);
mScrollHandler.postDelayed(mUpdateScroll, 100);
}
};
Здесь, Log в переменной pos_y корректно показывает изменения, от 480 до 0, плавно.
Моя идея заключалась в том, что представления прокручиваются снизу вверх со скоростью 10 пикселей в секунду.
К сожалению, макет внутри прокрутки полностью отображается в начале действия. В представлении прокрутки я использовал классический вертикальный linearLayout со всеми строками внутри него, загружая в onCreate.
Кто-нибудь мне поможет?