如何在 CollapsingToolbarLayout android 中定期更改图像?

Posted

技术标签:

【中文标题】如何在 CollapsingToolbarLayout android 中定期更改图像?【英文标题】:How to change image periodically inside CollapsingToolbarLayout android? 【发布时间】:2015-09-13 13:06:02 【问题描述】:

我想在CollapsingToolbarLayout 中定期旋转多个图像,例如Google Play Newsstand Application

我在此处上传了该应用的 3 张屏幕截图: First Second Third

我使用下面的代码创建了CollapsingToolbarLayout

<android.support.design.widget.CoordinatorLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_
android:layout_
android:fitsSystemWindows="true">

        <android.support.design.widget.AppBarLayout
        android:id="@+id/appbar"
        android:layout_
        android:layout_
        android:fitsSystemWindows="true"
        android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar" >

        <android.support.design.widget.CollapsingToolbarLayout
            android:id="@+id/collapsing_toolbar"
            android:layout_
            android:layout_
            app:layout_scrollFlags="scroll"
            android:fitsSystemWindows="true"
            app:contentScrim="?attr/colorPrimary"
            app:expandedTitleMarginEnd="64dp"
            app:expandedTitleMarginStart="48dp" >

                <ImageView
                    android:id="@+id/image"
                    android:layout_
                    android:layout_
                    app:layout_collapseMode="parallax"
                    android:fitsSystemWindows="true"
                    android:scaleType="centerCrop"
                    android:src="@drawable/image" />

            <android.support.v7.widget.Toolbar
                android:id="@+id/toolbar"
                android:layout_
                android:layout_
                app:layout_collapseMode="pin"
                app:popupTheme="@style/ThemeOverlay.AppCompat.Light" />
        </android.support.design.widget.CollapsingToolbarLayout>
    </android.support.design.widget.AppBarLayout>

如何在CollapsingToolbarLayout 内定期(在某个特定时间间隔后)更改图像?

注意:Look at here for creating animation on ImageView while changing image

【问题讨论】:

【参考方案1】:
    使用findViewById() 获取对ImageView 的引用 您需要一个Runnable,它将更新ImageView 中显示的图像

    您可以使用Hanlder 的postDelayed() 方法定期运行Runnable 代码

    final Handler handler = new Handler();   
    final Runnable runnable = new Runnable() 
    
        @Override   
        public void run()    
            //TODO: update image here   
            handler.postDelayed(this, INTERVAL);   
           
       
    handler.postDelayed(runnable, INTERVAL);
    

【讨论】:

那么鲜为人知的 ViewAnimator 小部件呢? @WindRider 这是一个有效的选项,具体取决于用例。

以上是关于如何在 CollapsingToolbarLayout android 中定期更改图像?的主要内容,如果未能解决你的问题,请参考以下文章

在QGIS中如何添加天地图的WMTS

如何在表单提交后保留文本(如何在提交后不删除自身?)

如何在异步任务中调用意图?或者如何在 onPostExecute 中开始新的活动?

在 Avkit 中如何使用这三行代码,以及如何将音乐静音”

如何在 JDBC 中启动事务?

如何在 Fragment 中调用 OnActivityResult 以及它是如何工作的?