How can you change a Swipe refresh layout's color for each rotation?

The documentation for SwipeRefreshLayout details the setColorSchemeResources() and setColorSchemeColors() methods that can be used to set the color scheme of your SwipeRefreshLayout

The docs state:

Set the color resources used in the progress animation from color resources. The first color will also be the color of the bar that grows in response to a user swipe gesture.

You should note that setColorSchemeColors() should be used with specific colour values and setColorSchemeResources() should be used when you intend to use resource references to colours (e.g. R.color.red).

Please also note that setColorScheme(), the old way of completing this, is now deprecated.


Change colors as per UI requirement:

swipeRefreshLayout.setColorSchemeColors(Color.BLUE, Color.YELLOW, Color.BLUE);

Here is how you can get the colors from the colors.xml resource and set them as SwipRefreshLayout's color scheme.

int c1 = getResources().getColor(R.color.refresh_progress_1);
int c2 = getResources().getColor(R.color.refresh_progress_2);
int c3 = getResources().getColor(R.color.refresh_progress_3);

mySwipeRefreshLayout.setColorSchemeColors(c1, c2, c3);

Tags:

Android