Provide both TextView and ImageView the ability to show shimmer (animation loader) before any text or image is shown. Useful when waiting for data to be loaded from the network. Example below
-
Loader View for TextView defined in layout XML
<com.elyeproj.loaderviewlibrary.LoaderTextView android:layout_width="match_parent" android:layout_height="wrap_content" />
-
Loader View for ImageView defined in layout XML
<com.elyeproj.loaderviewlibrary.LoaderImageView android:layout_width="100dp" android:layout_height="100dp" />
-
Define the % width of the TextView that shows the loading animation with
width_weight
<com.elyeproj.loaderviewlibrary.LoaderTextView android:layout_width="match_parent" android:layout_height="wrap_content" app:width_weight="0.4" />
-
Define the % height of the TextView that shows the loading animation with
height_weight
<com.elyeproj.loaderviewlibrary.LoaderTextView android:layout_width="match_parent" android:layout_height="wrap_content" app:height_weight="0.8" />
-
Define use gradient of the TextView or ImageView that shows the gradient with
use_gradient
<com.elyeproj.loaderviewlibrary.LoaderTextView android:layout_width="match_parent" android:layout_height="wrap_content" app:use_gradient="true" />
-
Define rectangle round radius using
corner
. The default corner is 0.<com.elyeproj.loaderviewlibrary.LoaderTextView android:layout_width="match_parent" android:layout_height="wrap_content" app:corners="16" />
-
Setting the Text Style as BOLD would darken the loading shimmer
-
Other feature of TextView and ImageView is still applicable.
-
Use a custom shimmer color (note: if set, point 7 will not apply, your color will be used even if the Text Style is BOLD)
<com.elyeproj.loaderviewlibrary.LoaderTextView android:layout_width="match_parent" android:layout_height="wrap_content" app:custom_color="@android:color/holo_green_dark" />
-
Reset and show shimmer (animation loader) again by calling the below API
myLoaderTextView.resetLoader(); myLoaderImageView.resetLoader();
Android SDK API Version 15 and above.
On your root build.gradle
, add mavenCentral()
to the allprojects
section.
On your module build.gradle
, add
dependencies {
implementation 'io.github.elye:loaderviewlibrary:3.0.0'
}
- Moved from JCenter to mavenCenter
- Fix some null crash issue
Note: only version 3.0.0 has been moved to mavenCenter
- Migrate to AndroidX
- Fix issue of preventing partial overlay if view reused quickly in RecyclerView
- Add custom color attribute
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this work except in compliance with the License. You may obtain a copy of the License in the LICENSE file, or at:
https://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.