Git Product home page Git Product logo

waveview's Introduction

WaveView Android自定义水波纹百分比效果控件

Android 自定义控件实现动态百分比水波纹效果,支持修改波纹长度、波峰高度、颜色、是否需要边框、边框的颜色、大小、可以控制波纹的移动速度,支持矩形和圆形两种效果。所有属性可以通过布局文件设置,也可以在代码中设置。

自定义属性字段展示

<!--自定义水波纹效果属性-->  
<declare-styleable name="WaveView">  
    <!--波浪1的长度、高度、颜色和每次重绘的偏移量-->  
    <attr name="wave1Length" format="integer" />  
    <attr name="wave1Height" format="integer" />  
    <attr name="wave1Color" format="color" />  
    <attr name="wave1Offset" format="integer" />  
    <!--波浪2的长度、高度、颜色和每次重绘的偏移量-->  
    <attr name="wave2Length" format="integer" />  
    <attr name="wave2Height" format="integer" />  
    <attr name="wave2Color" format="color" />  
    <attr name="wave2Offset" format="integer" />  
    <!--边框的宽度和颜色-->  
    <attr name="borderWidth" format="dimension" />  
    <attr name="borderColor" format="color" />  
    <!--文字的大小和颜色-->  
    <attr name="textColor" format="color" />  
    <attr name="textSize" format="dimension" />  
    <!--水位高度的百分比-->  
    <attr name="precent" format="float" />  
    <!--两次重绘的间隔时间-->  
    <attr name="intervalTime" format="integer" />  
    <!--控件的显示形状,rect矩形、circle圆形-->  
    <attr name="showShape" format="enum">  
        <enum name="rect" value="0" />  
        <enum name="circle" value="1" />  
    </attr>  
</declare-styleable>

使用

使用代码控制属性

① 在布局文件中定义控件

<com.waveview.view.WaveView  
    android:id="@+id/waveview"  
    android:layout_width="200dp"  
    android:layout_height="200dp"  
    android:layout_marginTop="10dp"/>

② 在代码中找到控件

WaveView waveview = (WaveView) findViewById(R.id.waveview);

③ 通过控件设置属性

// 代码设置相关属性  
waveview.setBorderWidth(2)  
    .setWaveColor1(Color.RED)  
    .setWaveColor2(Color.parseColor("#80ff0000"))  
    .setBorderColor(Color.GREEN)  
    .setTextColor(Color.BLUE)  
    .setShape(WaveView.ShowShape.RECT)  
    .setTextSize(36)  
    .setPrecent(0.65f)  
    .setTime(2);  

使用xml布局文件控制属性

<com.waveview.view.WaveView  
    android:id="@+id/waveview"  
    android:layout_width="200dp"  
    android:layout_height="200dp"  
    android:layout_marginTop="10dp"  
    renj:borderColor="#00ff00"  
    renj:borderWidth="2dp"  
    renj:intervalTime="3"  
    renj:precent="0.6"  
    renj:showShape="circle"  
    renj:textColor="#0000ff"  
    renj:textSize="18sp"  
    renj:wave1Color="#ff0000"  
    renj:wave2Color="#80ff0000"/> 

注意

使用xml文件控制属性时,注意添加属性名称空间xmlns:renj="http://schemas.android.com/apk/res-auto"

设置百分比变化监听

waveview.setPrecentChangeListener(new WaveView.PrecentChangeListener() {  
        @Override  
        public void precentChange(double precent) {  
            tvPrecent.setText("当前进度:" + precent + "");  
        }  
    }); 

CSDN博客查看相关内容 点击这里

效果图展示

Android水波纹圆形效果 Android水波纹矩形效果

waveview's People

Contributors

itrenjunhua avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.