我正在尝试创建一个获得百分比值(0-100)的动画,并根据该值在曲线中拉伸粗线,其中100%是一个完整的圆,50%是半个圆,所以上。
我添加了一个视图作为我的起跑线:
<View
android:id="@+id/testAnimationView"
android:layout_width="30dp"
android:layout_height="50dp"
android:layout_gravity="center"
android:background="#FF000000" />
我尝试在视图上创建一个ScaleAnimation
,但似乎我只能成功制作一个“直线”动画,其中X和Y被拉伸以创建一个更大的正方形,但这不是我需要的..
如何创建一个以非常细的线条开头的动画并将其拉伸到具有百分比值的圆圈?
答案 0 :(得分:1)
尝试在代码中集成示例项目
答案 1 :(得分:1)
正如Ajay Venugopal所说,你可以使用CircularProgressBar.java https://github.com/lopspower/CircularProgressBar/blob/master/circularprogressbar/src/main/java/com/mikhaellopez/circularprogressbar/CircularProgressBar.java
您在CircularProgressBar.java中唯一需要做的更改是:
第64行:
foregroundPaint.setStyle(Paint.Style.FILL);
第75行:
canvas.drawArc(rectF, startAngle, angle, true, foregroundPaint);
布局中的
<CircularProgressBar
style="?android:attr/progressBarStyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:cpb_background_progressbar_color="#b6bbd8"
app:cpb_background_progressbar_width="10dp"
app:cpb_progressbar_color="#3f51b5"
app:cpb_progressbar_width="20dp"
android:id="@+id/progressBar" />
然后在你的MainActivity.java
中protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final CircularProgressBar circularProgressBar = (CircularProgressBar) findViewById(R.id.progressBar);
circularProgressBar.setProgressWithAnimation(65, 4000);
}