您的位置:首页 > 移动开发 > Android开发

Android自定义半圆进度条 半圆渐变色进度条带指示 半圆开口大小可自由修改

2018-01-08 14:37 302 查看
Android自定义半圆进度条 半圆渐变色进度条带指示 半圆开口大小可自由修改

首先我们来看下效果图

不同的开口大小只需要修改一个参数即可

半圆1:



半圆2:



半圆3:



如果是你想要的效果,就直接滑动到文章底部,下载源码,然后结合本文章操作说明集成到自己的项目中吧

如果集成

第一步:

下载项目解压,然后用as打开。

第二步:

复制SemicircleProgressBar这个类到自己的项目中

第三步:

在需要显示的布局中,直接使用自定义控件,如下:

<com.ecaray.semicircleprogressbar.SemicircleProgressBar
android:id="@+id/progressbar"
android:layout_width="match_parent"
android:layout_height="200dp"
android:layout_centerInParent="true"
android:background="@color/white" />


具体操作见下图,复制自定义控件的完整路径,然后在xml布局文件中直接引用



第四步:在对应布局的类里面,声明控件,然后给控件通过setProgress方法,设置进度即可

package com.ecaray.semicircleprogressbar;

import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;

/**
* 类描述: 自定义半圆进度条
* 创建人: 背包客孔明先生
* 创建时间: 2018/1/8 11:58
* 修改人: 背包客孔明先生
* 修改时间: 2018/1/8 11:58
*/
public class MainActivity extends AppCompatActivity {
SemicircleProgressBar percentView;//自定义控件声明
TextView tvProgress;//显示进度的文本
Button btAdd;//加按钮
Button btSubstract;//减按钮
private int progress = 80;//初始进度

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
percentView = findViewById(R.id.progressbar);
tvProgress = findViewById(R.id.tv_progress);
percentView.setProgress(progress);//初始化进度
tvProgress.setText(progress + "%");//初始化进度文本显示
btAdd = findViewById(R.id.bt_add);
btSubstract = findViewById(R.id.bt_subtract);
btAdd.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
progress += 1;//进度每次加1
if (progress > 99) {//大于99则等于100
progress = 100;
}
percentView.setProgress(progress);//设置进度条显示进度
tvProgress.setText(progress + "%");//设置文本显示进度数字

}
});
btSubstract.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
progress -= 1;//进度每次减1
if (progress < 0) {//小于0则等于0
progress = 0;
}
percentView.setProgress(progress);//设置进度条显示进度
tvProgress.setText(progress + "%");//设置文本显示进度数字
}
});
}
}


以上,就完成了集成工作,可以跑下程序,看看效果了。

如果需要改变半圆进度条的开口大小,也非常的简单,只需要修改一个参数即可

第一步:

打开SemicircleProgressBar该类,在声明变量中找到

/**
* 两条圆弧的起始角度
* 起始角度控制半圆开口的大小,数值越小开口越大,数值越大开口越小
*/
private double floatAngel = 50;


第二步:

修改他的数值即可

其他的想修改的效果,代码中都有备注,直接修改对应的值看效果即可。

重点内容

最后附上源码下载链接:

http://download.csdn.net/download/beibaokongming/10194333
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: