1. 简介
本文将记录的是一些有效的自定义指示器demo,诚然Indicator的开源框架还是比较多的,我们在具体具体中可以衡量。一些简单的自定义基础还是有必要好好掌握的。
2. demo样例
2.1 图片背景选择(stateListDrawable)+ViewPager样式
stateListDrawable相关文章:
首先看下效果吧:Android UI之stateListDrawable stateListAnimator ripple背景的综合运用
如下图所示,可以滑动viewPager来滑动头部的指示器;也可以通过点击指示器来选择不同的界面
具体实现:
首先就是布局咯:和 tabLayout+ViewPager的形式是一样的布局
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".indicator.IndicatorOneActivity">
<LinearLayout
android:layout_gravity="center_horizontal"
android:layout_width="wrap_content"
android:layout_height="50dp"
android:background="#ffce3d3a">
<ImageView
android:id="@+id/iv_title_gank"
android:layout_width="55dp"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:background="?attr/selectableItemBackgroundBorderless"
android:src="@drawable/titlebar_disco" />
<ImageView
android:id="@+id/iv_title_one"
android:layout_width="55dp"
android:layout_height="match_parent"
android:background="?attr/selectableItemBackgroundBorderless"
android:src="@drawable/titlebar_music" />
<ImageView
android:id="@+id/iv_title_dou"
android:layout_width="55dp"
android:layout_height="match_parent"
android:background="?attr/selectableItemBackgroundBorderless"
android:src="@drawable/titlebar_friends" />
</LinearLayout>
<android.support.v4.view.ViewPager
android:id="@+id/viewPager"
android:descendantFocusability="blocksDescendants"
android:layout_width="match_parent"