Android 自定义 圆环,Android 实现自定义圆环

本文介绍了如何在Android中实现自定义圆环视图,用于数据占比展示。通过绘制大圆和小圆形成圆环,并支持动画效果。提供详细步骤,包括设置颜色、占比以及使用方法。此外,还分享了自定义View的关键代码,强调了布局尺寸固定、画笔颜色数组长度等注意事项。
摘要由CSDN通过智能技术生成

用途说明:

这是一个自定义的圆环图像,支持动画展示,可以自定义圆环的颜色和占比,主要用以展示一些数据占比方面展示的android圆环。

圆环实现思路:

android的自定义圆环实现有很多种方法,这里只介绍我实现的思路。主要思路是先画一个大圆,然后再画一个与大圆同圆心的小圆,然后小圆的颜色可以设置为背景色,这样看上去就是一个圆环了。

实现效果:

60fa817943d1

动画效果

使用方法:

1.布局文件中直接使用自定义圆环(RingView),控件的宽和高需要固定的尺寸

android:layout_width="match_parent"

android:layout_height="match_parent"

android:background="@android:color/white"

android:orientation="vertical">

android:id="@+id/rvRingView"

android:layout_gravity="center"

android:layout_width="300dp"

android:layout_height="300dp" />

2.在对应的activty中调用一些方法来实现你的需求即可

public class TestActivity extends AppCompatActivity {

@Bind(R.id.rvRingView)

RingView mRvRingView;

@Override

protected void onCreate(@Nullable Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.layout_test1);

ButterKnife.bind(this);

mRvRingView.setAnglesData("12.2","230","6799.01","1","111","200");//直接设置String类型的数据

// mRvRingView.setAnglesData(12.2,230,6799.01,1,111,200);//直接设置double类型的数据

// mRvRingView.setAngles(20, 40, 100, 180, 20);//设置的是角度

// mRvRingView.setRingStartAngle(-90);//设置圆环的开始角度,不设置默认是-90

//设置画笔的颜色,支持字符串和资源文件可变参数。

mRvRingView.initPaint("#123456", "#fea123", "#fefefe", "#78da10", "#1121de", "#aacc18");//支持字符串

// mRvRingView.initPaint(R.color.color_first_part,R.color.color_second_part,

// R.color.color_third_part,R.color.color_fourth_part,

// R.color.color_fifth_part,R.color.color_sixth_part);

// mRvRingView.setInnerCirclePaintColor("#ffffff");//内圆的画笔颜色,默认#ffffff

mRvRingView.setRingStrokeWidth(40);//圆环的环宽,默认20

// mRvRingView.showViewWithAnimation(1000);//自定义动画时长展示圆环

// mRvRingView.showViewWithoutAnimation();//展示圆环不带动画

mRvRingView.showViewWithAnimation();//动画展示圆环,默认2s

}

}

3.自定义view的源码

public class RingView extends View {

private static final int CIRCLE_ANGLE = 360;//圆环的角度

private static final int RING_STROKE_WIDTH = 20;//默认圆环的宽度为20dp

private Paint mNoAssetsPaint, mInnerCirclePaint;

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值