编程语言
首页 > 编程语言> > java-可以在没有Android的ToolBar的情况下制作视差效果吗?

java-可以在没有Android的ToolBar的情况下制作视差效果吗?

作者:互联网

我一直在寻找(也正在第三方库上)某种形式的“视差”,但是没有工具栏,我所看到的只是使用工具栏,但这不是我的最大利益,因为我删除了工具栏在整个应用程序上.

我遵循以下示例:https://www.youtube.com/watch?v=HO82ES_RiSQ,但它没有说服我…

有谁能解决这个问题?我想知道如何在不使用工具栏的情况下进行视差

提前致谢

解决方法:

您只需三步即可完成:)

>在build.gradle(project on github)的依赖项中添加编译’com.github.ksoichiro:android-observablescrollview:1.6.0′
>使用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>

>在ObservableScrollView中设置ObservableScrollViewCallbacks并在on轴上通过onScrollChange方法在Image轴上平移

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.setTranslationY(scrollY / 2);这意味着ImageView的滚动速度比滚动内容慢两倍.

这是它的样子:

Parallax image

标签:parallax,java,android
来源: https://codeday.me/bug/20191027/1942646.html