Android开源:suitline-小巧且高效的线性图表组件

MinFields 7年前
   <h2>SuitLines</h2>    <p>suitline是一个小巧且高效的线性图表组件。</p>    <p><img src="https://simg.open-open.com/show/36c1f8db6cf815a8578788cd178d5110.png"> <img src="https://simg.open-open.com/show/78a6a479dd12e475093e0c329cf4d5e5.png"></p>    <p><img src="https://simg.open-open.com/show/afa6c836fb9c3bbba66d0b3da3165b80.gif"> <img src="https://simg.open-open.com/show/d1041214ccd3a5935d7db8536cc2cda2.gif"></p>    <h2>功能特性</h2>    <p>suitline基于实用性目的而打造,相较于其它图表库,suitlines在多线段、性能体验以及视觉反馈等几个方面进行了支持和优化,使其更适合用于实际项目中。suitLines的所有特性如下:</p>    <ul>     <li>可以为line指定一或多种颜色;</li>     <li>支持多条line;</li>     <li>支持线段 / 曲线 / 虚线 相互切换;</li>     <li>支持边缘拖动反馈效果;</li>     <li>支持y轴自定义分隔区间、x轴自定义文本;</li>     <li>支持点击反馈;</li>     <li>美而不腻的动画;</li>    </ul>    <h2>使用步骤</h2>    <p>注意:SuitLines需要项目的 API >= 14</p>    <h3>1.集成</h3>    <ul>     <li>第一种:通过build.gradle方式集成 <pre>  <code class="language-java">compile 'tech.linjiang:suitlines:1.0.0'</code></pre> </li>     <li>第二种:直接下载源文件到项目。(推荐)由于所有的逻辑代码都在 SuitLines.java 中且拥有丰富的注释,所以可以方便地按照实际业务需求来调整或改造。</li>    </ul>    <h3>2.在xml布局中调用:</h3>    <pre>  <code class="language-java"><tech.linjiang.suitlines.SuitLines      xmlns:line="http://schemas.android.com/apk/res-auto"      android:id="@+id/suitlines"      android:layout_width="match_parent"      android:layout_height="200dp"      line:xySize="8"      line:xyColor="@color/colorAccent"      line:lineType="curve"      line:Style="solid"      line:needEdgeEffect="true"      line:colorEdgeEffect="@color/colorPrimaryDark"      line:needClickHint="true"      line:colorHint="@color/colorPrimary"      line:maxOfVisible="7"      line:countOfY="6"/></code></pre>    <p>所有可静态配置的属性如上,以下是其对应的动态设置方法及其它API:</p>    <table>     <thead>      <tr>       <th>静态属性</th>       <th>对应API</th>       <th>说明</th>      </tr>     </thead>     <tbody>      <tr>       <td>xySize</td>       <td>setXySize</td>       <td>xy轴文字大小</td>      </tr>      <tr>       <td>xyColor</td>       <td>setXyColor</td>       <td>xy轴文字的颜色,包含轴线</td>      </tr>      <tr>       <td>lineType</td>       <td>setLineType</td>       <td>指定line类型:CURVE / SEGMENT(曲线/线段)</td>      </tr>      <tr>       <td>Style</td>       <td>setLineStyle</td>       <td>指定line的风格:DASHED / SOLID(虚线/实线)</td>      </tr>      <tr>       <td>needEdgeEffect</td>       <td>disableEdgeEffect</td>       <td>关闭边缘效果,默认开启</td>      </tr>      <tr>       <td>colorEdgeEffect</td>       <td>setEdgeEffectColor</td>       <td>指定边缘效果的颜色,默认为Color.GRAY</td>      </tr>      <tr>       <td>needClickHint</td>       <td>disableClickHint</td>       <td>关闭点击提示信息,默认开启</td>      </tr>      <tr>       <td>colorHint</td>       <td>setHintColor</td>       <td>设置提示辅助线、文字颜色</td>      </tr>      <tr>       <td>maxOfVisible</td>       <td>/</td>       <td>一组数据在可见区域中的最大可见点数,至少>=2</td>      </tr>      <tr>       <td>countOfY</td>       <td>/</td>       <td>y轴刻度数,至少>=1</td>      </tr>      <tr>       <td>/</td>       <td>setLineSize</td>       <td>设置line在非填充形态时的大小</td>      </tr>      <tr>       <td>/</td>       <td>setLineForm</td>       <td>设置line的形态:是否填充,默认为false</td>      </tr>     </tbody>    </table>    <h3>3.填充数据</h3>    <p>对于一条line,可以直接调用feed或feedWithAnim方法:</p>    <pre>  <code class="language-java">List<Unit> lines = new ArrayList<>();  for (int i = 0; i < 14; i++) {      lines.add(new Unit(new SecureRandom().nextInt(48), i + ""));  }  suitLines.feedWithAnim(lines);</code></pre>    <p>如果是多条数据,则需要通过Builder来实现:</p>    <pre>  <code class="language-java">SuitLines.LineBuilder builder = new SuitLines.LineBuilder();  for (int j = 0; j < count; j++) {      List<Unit> lines = new ArrayList<>();      for (int i = 0; i < 50; i++) {          lines.add(new Unit(new SecureRandom().nextInt(128), "" + i));      }      builder.add(lines, new int[]{...});  }  builder.build(suitLines, true);</code></pre>    <h2> </h2>    <p> </p>    <p>项目主页:<a href="http://www.open-open.com/lib/view/home/1493348019651">http://www.open-open.com/lib/view/home/1493348019651</a></p>    <p> </p>