2016-03-23 1 views
1

Я долго искал (смотря на сторонние библиотеки), чтобы сделать какой-то «параллакс», но без Toolbar, все, что я видел, работает с Toolbar, но это не в моих интересах, потому что я удален Toolbar сверху всего применение.Возможно ли сделать эффект Parallax без ToolBar на Android?

Я последовал этому примеру: https://www.youtube.com/watch?v=HO82ES_RiSQ, но это не убедило меня ...

Там в любой, кто может решить эту проблему? Я хотел бы знать, как я могу сделать Параллакс без использования Toolbar

Заранее спасибо

ответ

3

Вы можете сделать это всего за три шага :)

  1. Добавить compile 'com.github.ksoichiro:android-observablescrollview:1.6.0' ваши зависимости в build.gradle
  2. Создать макет с ImageView, прокручиваемый контент и ObservableScrollView как контейнер.

    activity_layout.xml

    <?xml version="1.0" encoding="utf-8"?> 
    <com.github.ksoichiro.android.observablescrollview.ObservableScrollView  
        xmlns:android="http://schemas.android.com/apk/res/android" 
        android:id="@+id/observable_scrollview" 
        android:layout_width="match_parent" 
        android:layout_height="match_parent"> 
    
        <LinearLayout 
         android:layout_width="wrap_content" 
         android:layout_height="match_parent" 
         android:orientation="vertical"> 
    
         <ImageView 
          android:id="@+id/image_view" 
          android:layout_width="wrap_content" 
          android:layout_height="wrap_content" 
          android:adjustViewBounds="true" 
          android:src="@drawable/example" /> 
         <View 
          android:id="@+id/your_content" 
          android:layout_width="wrap_content" 
          android:layout_height="600dp" 
          android:background="@android:color/black" /> 
        </LinearLayout> 
    </com.github.ksoichiro.android.observablescrollview.ObservableScrollView> 
    
  3. Set ObservableScrollViewCallbacks в вашем ObservableScrollView и перевести через ось у вашего ImageView в методе onScrollChange

    public class MainActivity extends AppCompatActivity implements ObservableScrollViewCallbacks { 
        private ImageView imageView; 
    
        @Override 
        protected void onCreate(Bundle savedInstanceState) { 
         super.onCreate(savedInstanceState); 
         setContentView(R.layout.activity_layout); 
         ObservableScrollView observableScrollView = (ObservableScrollView) findViewById(R.id.observable_scrollview); 
         observableScrollView.setScrollViewCallbacks(this); 
         imageView = (ImageView) findViewById(R.id.image_view); 
        } 
    
        @Override 
        public void onScrollChanged(int scrollY, boolean firstScroll, boolean dragging) { 
         imageView.setTranslationY(scrollY/2); 
        } 
    } 
    

Очень важным является ImageView. setTransl ationY (scrollY/2);, что означает, что ваш ImageView прокручивается в два раза медленнее вашего прокручиваемого содержимого.

А вот как это выглядит:

Parallax image

+0

я видел в последнее время этого кода и кажется, что в моих интересах (но я не видел этот пример, все примеры с использованием панели инструментов на главной странице) спасибо вам большое! –

+0

Эй, друг! У меня возникают проблемы с добавлением нового макета (я не хочу, чтобы Parallax влиял на этот новый) вместо этого черного вида, можете ли вы мне помочь? –

+0

Эй, пожалуйста, вы можете ответить мне на ответ? большое вам спасибо! –