自定义View之圆形圆角椭圆进度条等

摘自:https://github.com/luqinmao/RoundImageView/blob/master/app/src/main/res/layout/activity_main.xml

很强大   效果截图

自定义View之圆形圆角椭圆进度条等


很多都是自定义属性直接使用就可以


<?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"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:gravity="center_horizontal"
    android:orientation="vertical">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal">
        //圆角的
        <com.lqm.roundview.RoundImageView
            android:layout_width="120dp"
            android:layout_height="120dp"
            android:layout_margin="10dp"
            android:scaleType="fitXY"
            android:src="@mipmap/image_1"
            app:corner_radius="20dp" />
          //只设置右边的圆角
        <com.lqm.roundview.RoundImageView
            android:layout_width="120dp"
            android:layout_height="120dp"
            android:layout_margin="10dp"
            android:scaleType="fitXY"
            android:src="@mipmap/image_1"
            app:rightBottom_corner_radius="20dp"
            app:rightTop_corner_radius="10dp" />

    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal">
        //圆形图片
        <com.lqm.roundview.RoundImageView
            android:layout_width="120dp"
            android:layout_height="120dp"
            android:layout_margin="10dp"
            android:scaleType="fitXY"
            android:src="@mipmap/image_2"
            app:border_color="#68f"
            app:border_width="5dp"
            app:type="circle" />
       //椭圆  通过宽高设置
        <com.lqm.roundview.RoundImageView
            android:layout_width="120dp"
            android:layout_height="80dp"
            android:scaleType="fitXY"
            android:src="@mipmap/image_2"
            app:border_color="#9999"
            app:border_width="1dp"
            app:type="oval" />

    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal">
        //圆形进度条  设置边框颜色
        <com.lqm.roundview.RoundImageView
            android:id="@+id/iv_progress"
            android:layout_width="130dp"
            android:layout_height="130dp"
            android:scaleType="fitXY"
            android:src="@mipmap/image_3"
            app:border_color="#fff"
            app:border_width="5dp"
            app:type="circle"
            android:layout_margin="10dp"
            />
       //圆形进度条  设置 进度颜色
    <com.lqm.roundview.RoundImageView
        android:layout_width="130dp"
        android:layout_height="130dp"
        android:scaleType="fitXY"
        android:src="@mipmap/image_3"
        app:border_color="#7195ae"
        app:border_width="5dp"
        app:type="circle"
        app:progress_border="120"
        app:progress_color="#eda167"
        android:layout_margin="10dp"
        />
</LinearLayout>

</LinearLayout>

使用:

导入依赖:

compile 'com.lqm:RoundImageView:1.0.0'
直接在XML里引用就可以了  上面的可以借鉴


另外进度条这里可以提供一个动态的效果

进入他的源码里边加一个

getmBorderProgress的方法

new AsyncTask<String, Integer, String>() {
    @Override
    protected String doInBackground(String... params) {

        for (int i = 0; i <= 360; i++) {
            SystemClock.sleep(100 / 12);
            publishProgress(i);
        }
        return null;
    }

    @Override
    protected void onProgressUpdate(Integer... values) {
        if (mIvProgress.getmBorderProgress()>= 360) {
            mIvProgress.setProgress(360,R.color.orange);
        }
        mIvProgress.setProgress(values[0],R.color.orange);
    }
}.execute();