Android动态效果定值范围选择控件

ackq4001 7年前
   <h2>效果演示:</h2>    <p><img src="https://simg.open-open.com/show/57e82190b126f01f7282f0518246073e.gif"></p>    <h2>添加依赖库的步骤</h2>    <h3>1.项目的gradle文件内的做以下改动</h3>    <pre>  <code class="language-java">allprojects {          repositories {              ...              maven { url "https://jitpack.io" }          }      }</code></pre>    <h3>2.添加最新版本的依赖库,最新版本如右所示,修改末尾的版本即可(因为我有时候更新版本了会忘记修改readme)</h3>    <pre>  <code class="language-java">dependencies {              compile 'com.github.Brioal:BrioalSetting:1.0'              ////例如上面最新版本是1.1,则只要把1.0改成1.1即可使用最新版本      }</code></pre>    <h2>使用步骤:</h2>    <h3>1.xml布局文件</h3>    <p>实际使用过程中发现如果与其他组件在一起,则滑动事件会实效,暂时没发现代码里面怎么解决,设置focus啥的都没用,暂时的解决办法是给组件添加一个父布局并且不包含其他组件即可,如下:</p>    <pre>  <code class="language-java"><LinearLayout          android:id="@+id/layout"  android:layout_centerInParent="true"          android:layout_width="match_parent"          android:layout_height="wrap_content">          <com.brioal.rangeseek.view.RangeBar              android:id="@+id/main_container"              android:layout_width="match_parent"              android:layout_height="wrap_content"              android:layout_centerInParent="true"/>        </LinearLayout></code></pre>    <h3>2.代码设置</h3>    <pre>  <code class="language-java">mRangeBar = (RangeBar) findViewById(R.id.main_container);            //添加数据源          final List<RangeEntity> list = new ArrayList<>();          //要显示的文字和实际的值,分别是String 和 Object类型          list.add(new RangeEntity("15℃", 15));          list.add(new RangeEntity("18℃", 18));          list.add(new RangeEntity("21℃", 21));          list.add(new RangeEntity("24℃", 24));          list.add(new RangeEntity("27℃", 27));          list.add(new RangeEntity("30℃", 30));          //设置数据源          mRangeBar.setValues(list);          //添加范围改变监听器          mRangeBar.addOnRangeChangedListener(new OnRangeChangedListener() {              @Override              public void selected(int startIndex, int endIndex) {              //获取到的是起始和终止的数据在List中所对应的下标                  mTvMin.setText(list.get(startIndex).getValue() + "");                  mTvMax.setText(list.get(endIndex).getValue() + "");              }          });</code></pre>    <h3>3.提供的供自定义视图的方法</h3>    <table>     <thead>      <tr>       <th>方法</th>       <th>功能</th>      </tr>     </thead>     <tbody>      <tr>       <td>void addOnRangeChangedListener(OnRangeChangedListener listener)</td>       <td>设置事件监听器</td>      </tr>      <tr>       <td>void setLineColor(int lineColor)</td>       <td>设置中间的线条颜色</td>      </tr>      <tr>       <td>void setLineWidth(int lineWidth)</td>       <td>设置中间的线条宽度</td>      </tr>      <tr>       <td>void setCircleColor(int circleColor)</td>       <td>设置圆点的边框颜色</td>      </tr>      <tr>       <td>void setCircleRadius(int circleRadius)</td>       <td>设置圆点的半径</td>      </tr>      <tr>       <td>void setCircleWidth(int circleWidth)</td>       <td>设置圆点的线条宽度</td>      </tr>      <tr>       <td>void setCenterColor(int centerColor)</td>       <td>设置选中的圆点的填充颜色</td>      </tr>      <tr>       <td>void setPointColor(int pointColor)</td>       <td>设置游标的填充颜色</td>      </tr>      <tr>       <td>void setStartIndex(int startIndex)</td>       <td>设置选中的起始下标</td>      </tr>      <tr>       <td>int getStartIndex()</td>       <td>获取选中的起始下标</td>      </tr>      <tr>       <td>void setEndIndex(int endIndex)</td>       <td>设置终止下标</td>      </tr>      <tr>       <td>int getEndIndex()</td>       <td>获取终止的下标</td>      </tr>     </tbody>    </table>