在我CountryImageInfo.java
的面前,我有一个折叠的工具栏,里面有一张图像。看起来是这样的:
我想知道如何在图像崩溃时使图像模糊,以及如何使图像再次模糊化。与iOS的通知栏类似,我不知道您是否熟悉它……我已经看到类似的问题,但是不同之处在于,有人问它折叠时如何模糊(不是我在问。我在问它崩溃了。逐渐模糊)...
顺便说一下,这是我的XML,所有内容都包装在一个中CoordinatorLayout
:
<android.support.design.widget.AppBarLayout
android:id="@+id/testeparainfo"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="?attr/actionBarDivider">
<android.support.design.widget.CollapsingToolbarLayout
android:id="@+id/backgroundcollapsedtoolbarinfo"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:expandedTitleMarginEnd="64dp"
app:expandedTitleMarginStart="48dp"
app:layout_scrollFlags="exitUntilCollapsed|scroll">
<ImageView
android:id="@+id/imgCountryInfoFoto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scaleType="centerCrop" />
<ImageView
android:id="@+id/imgCountryInfoEscuro"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:adjustViewBounds="true"
android:background="@drawable/background_pais_info"
android:scaleType="centerInside" />
<android.support.v7.widget.Toolbar
android:id="@+id/toolbaridinfo"
android:layout_width="match_parent"
android:layout_height="200dp"
app:layout_collapseMode="pin"
app:popupTheme="@style/ThemeOverlay.AppCompat.Light">
</android.support.v7.widget.Toolbar>
<TextView
android:id="@+id/txtNomePaisInfo"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="bottom"
android:layout_marginStart="30dp"
android:layout_marginTop="520dp"
android:paddingBottom="10dp"
android:text="TextView"
android:textColor="@android:color/background_light"
android:textSize="35sp"
app:layout_anchor="@+id/testeparainfo"
app:layout_anchorGravity="left|bottom" />
</android.support.design.widget.CollapsingToolbarLayout>
</android.support.design.widget.AppBarLayout>
更新:
复制图像不是我真正想要的,因为这些图像有些大,所以,除了复制图像之外,还有其他方法吗?我搜索了一些库,但找不到适合我需要的任何内容...我可以使所有图像变蓝,有没有一种方法可以设置一个侦听器,以在用户向上拖动折叠栏时开始模糊?请帮忙,我已经尝试了很多东西!
我用过RealtimeBlurView。要使用此功能,请在build.gradle
您的应用模块中进行更改。
在build.gradle中添加依赖项:
dependencies {
compile 'com.github.mmin18:realtimeblurview:1.1.2'
}
android {
buildToolsVersion '24.0.2' // Use 23.0.3 or higher
defaultConfig {
minSdkVersion 15
renderscriptTargetApi 19
renderscriptSupportModeEnabled true // Enable RS support
}
}
如有必要,添加proguard规则:
-keep类android.support.v8.renderscript。** {*; }
然后在您的 CollapsingToolbarLayout
<com.github.mmin18.widget.RealtimeBlurView
android:id="@+id/blurView"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:realtimeBlurRadius="20dp"
app:realtimeOverlayColor="#8000" />
并在您的活动中添加以下代码。
final AppBarLayout appBar = findViewById(R.id.testeparainfo);
final RealtimeBlurView blurView = findViewById(R.id.blurView);
blurView.setAlpha(1F);
appBar.addOnOffsetChangedListener(new AppBarLayout.OnOffsetChangedListener() {
@Override
public void onOffsetChanged(final AppBarLayout appBarLayout, final int verticalOffset) {
float offsetAlpha = (appBarLayout.getY() / appBar.getTotalScrollRange());
blurView.setAlpha(offsetAlpha * -1);
}
});
得到了这个答案的帮助
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句