2015-03-18 1 views
1

Короче говоря, мне нужен предварительный просмотр, похожий на Google Play, где вы можете перемещаться вверх, а верхнее изображение/просмотр видео исчезает, а остальная часть обзора перемещается вверх.Название макета или как это делается?

Preview

У меня есть мнение, что я хочу быть спрятан, как видео в этом примере, бар действия может оставаться неподвижным во все времена, но мне нужен нижняя часть, чтобы быть dragable.

Я не могу найти, какой макет, который является или как это делается, все, что мне удалось найти, не было связано ни с чем, как с ViewPager. Моя текущая версия мин SDK является 18, версия компиляции 21.

+2

если вы хотите задать вопрос, то первым опубликовать ваш код тоже, чтобы мы могли видеть, что вы пробовали до сих пор ...? – Umair

+0

@ Darkie: Поскольку OP не имеет представления о том, что такое тип макета или как достигается эффект, я бы счел этот вопрос допустимым даже без отправки OP-кода. – Squonk

ответ

2

Ниже приведен код, который я использовал в приложении я работаю

Вы должны будете использовать функцию OnScrollChanged в вашем ScrollView. ActionBar не позволяет вам установить непрозрачность, поэтому установите фоновый рисунок на панели действий, и вы можете изменить его непрозрачность на основе количества прокрутки в scrollview. Я привел примерный рабочий процесс

Наборы функций дают соответствующую альфу для местоположения locationImage на основе его положения WRT-окна.

this.getScrollY() дает вам сколько Scrollview прокрутил

public void OnScrollChanged(int l, int t, int oldl, int oldt) { 
    // Code ... 
    locationImage.setAlpha(getAlphaForView(locationImageInitialLocation- this.getScrollY())); 
} 


private float getAlphaForView(int position) { 
    int diff = 0; 
    float minAlpha = 0.4f, maxAlpha = 1.f; 
    float alpha = minAlpha; // min alpha 
    if (position > screenHeight) 
     alpha = minAlpha; 
    else if (position + locationImageHeight < screenHeight) 
     alpha = maxAlpha; 
    else { 
     diff = screenHeight - position; 
     alpha += ((diff * 1f)/locationImageHeight)* (maxAlpha - minAlpha); // 1f and 0.4f are maximum and min 
              // alpha 
     // this will return a number betn 0f and 0.6f 
    } 
    // System.out.println(alpha+" "+screenHeight +" "+locationImageInitialLocation+" "+position+" "+diff); 
    return alpha; 
} 

Вы можете загрузить пример рабочего образца при https://github.com/ramanadv/fadingActionBar

Кредит: CommandSpace

+0

Исправьте меня, если я ошибаюсь, но разве это не только для панели действий? Меня больше интересует предварительный просмотр/видео, которое, кажется, перемещается за нижней частью макета. – tofiffe

+0

Да, заметил это. Это не поддерживается в моем источнике. Я знаю о другой библиотеке, которая работает именно так, как вы хотите. Но я не проверял это. Вот почему я не разделял. Вы можете это проверить. Надеюсь, это поможет. Проверьте это: https://github.com/ManuelPeinado/FadingActionBar –