Android动态效果定值范围选择控件
ackq4001
8年前
<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>