实现内容占位符作为 Android 中的进度指示器
Achieving content placeholders as progress indicators in Android
我的问题与this question非常相似。我想实现使用这种风格的进度指示器:
即用动态的灰色矩形替换文本和图像等内容 like here。
我过去见过很多这样的东西,例如Facebook。我很确定 YouTube 应用曾经有这种风格。
问题分开
显而易见的第一个问题是如何在 Android 上做到这一点,特别是如果有一种惯用的、标准的或简单的方法来实现这一点,第二个问题与此密切相关,因为这是我的
问题
我怎样才能将 TextView
转换成这样的 加载矩形 。我可以想象用这个替换我的整个视图结构,但我也不知道从哪里开始动画。
看看这个图书馆 - ShimmerLayout
ShimmerLayout can be used to add shimmer effect (like the one used at Facebook or at LinkedIn) to your Android application.
此外,如果您对如何实现动画感到好奇,请查看库 sources。
您需要创建骨架布局并在整个屏幕上膨胀它。然后你可以使用不同的库来添加微光效果。
drawable/skeleton.xml:
<?xml version="1.0" encoding="UTF-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<solid android:color="@color/skeleton"/>
<corners android:radius="4dp"/>
</shape>
layout/skeleton_row_layout.xml:
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="@dimen/row_layout_height">
<View
android:id="@+id/icon"
android:layout_width="56dp"
android:layout_height="56dp"
android:layout_margin="15dp"
android:layout_gravity="center_vertical"
android:background="@drawable/skeleton"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"/>
<View
android:id="@+id/topText"
android:layout_width="200dp"
app:layout_constraintTop_toTopOf="@id/icon"
app:layout_constraintStart_toEndOf="@id/icon"
android:layout_height="15dp"
android:layout_marginLeft="16dp"
android:background="@drawable/skeleton"/>
<View
android:id="@+id/bottomText"
android:layout_width="250dp"
android:layout_height="15dp"
app:layout_constraintTop_toBottomOf="@id/topText"
android:layout_marginTop="10dp"
app:layout_constraintStart_toEndOf="@id/icon"
android:layout_marginLeft="16dp"
android:background="@drawable/skeleton"/>
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="@drawable/skeleton"
app:layout_constraintTop_toBottomOf="@id/icon"
android:layout_marginTop="10dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"/>
</android.support.constraint.ConstraintLayout>
看看我写的这篇教程,看看如何使用它:https://medium.com/@sha17187/upgrade-progress-loading-with-a-skeleton-and-shimmer-effect-in-android-863ea4ff5b0b
我的问题与this question非常相似。我想实现使用这种风格的进度指示器:
即用动态的灰色矩形替换文本和图像等内容 like here。
我过去见过很多这样的东西,例如Facebook。我很确定 YouTube 应用曾经有这种风格。
问题分开
显而易见的第一个问题是如何在 Android 上做到这一点,特别是如果有一种惯用的、标准的或简单的方法来实现这一点,第二个问题与此密切相关,因为这是我的
问题
我怎样才能将 TextView
转换成这样的 加载矩形 。我可以想象用这个替换我的整个视图结构,但我也不知道从哪里开始动画。
看看这个图书馆 - ShimmerLayout
ShimmerLayout can be used to add shimmer effect (like the one used at Facebook or at LinkedIn) to your Android application.
此外,如果您对如何实现动画感到好奇,请查看库 sources。
您需要创建骨架布局并在整个屏幕上膨胀它。然后你可以使用不同的库来添加微光效果。
drawable/skeleton.xml:
<?xml version="1.0" encoding="UTF-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<solid android:color="@color/skeleton"/>
<corners android:radius="4dp"/>
</shape>
layout/skeleton_row_layout.xml:
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="@dimen/row_layout_height">
<View
android:id="@+id/icon"
android:layout_width="56dp"
android:layout_height="56dp"
android:layout_margin="15dp"
android:layout_gravity="center_vertical"
android:background="@drawable/skeleton"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"/>
<View
android:id="@+id/topText"
android:layout_width="200dp"
app:layout_constraintTop_toTopOf="@id/icon"
app:layout_constraintStart_toEndOf="@id/icon"
android:layout_height="15dp"
android:layout_marginLeft="16dp"
android:background="@drawable/skeleton"/>
<View
android:id="@+id/bottomText"
android:layout_width="250dp"
android:layout_height="15dp"
app:layout_constraintTop_toBottomOf="@id/topText"
android:layout_marginTop="10dp"
app:layout_constraintStart_toEndOf="@id/icon"
android:layout_marginLeft="16dp"
android:background="@drawable/skeleton"/>
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="@drawable/skeleton"
app:layout_constraintTop_toBottomOf="@id/icon"
android:layout_marginTop="10dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"/>
</android.support.constraint.ConstraintLayout>
看看我写的这篇教程,看看如何使用它:https://medium.com/@sha17187/upgrade-progress-loading-with-a-skeleton-and-shimmer-effect-in-android-863ea4ff5b0b