为Android Ring Shape的扫掠角设置动画
尝试对Android Ring形状进行动画处理,以产生与所示图像序列类似的效果。
我找到了Shape Drawable类型的戒指。
<shape
xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="ring"
android:innerRadius="75dp"
android:thickness="25dp"
android:useLevel="false">
随着ArcShape(startAngle,sweepAngle)方法。
ShapeDrawable shape = new ShapeDrawable(new ArcShape(0, 360));
shape.setIntrinsicHeight(100);
shape.setIntrinsicWidth(100);
shape.getPaint().setColor(Color.BLACK);
但是,这些问题是由于无法找到可绘制形状的扫掠角度属性或为ArcShape创建内半径的能力。
我正试图制作一个流畅的动画。
旧线程,但我认为它仍然有用。
我设法使用上面的代码获得了类似的行为:
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<shape android:shape="oval">
<size
android:height="56dp"
android:width="56dp"/>
<stroke
android:width="6dp"
android:color="#FFFFFF"/>
</shape>
</item>
<item>
<shape android:shape="oval">
<size
android:height="50dp"
android:width="50dp"/>
<stroke
android:width="6dp"
android:dashGap="140dp"
android:dashWidth="16dp"
android:color="#FF0000"/>
</shape>
</item>
</layer-list>
这里的关键是使用dashGap和dashWidth值,直到获得所需的图像。
有用的材料:Android:寻找具有内部和外部半径的drawArc()方法
使用PorterDuff清除模式,内部可以被“移除”,留下甜甜圈形状。 然后,您可以通过扩展Animation类来重新绘制Arc的扫掠角。
你以不同的方式画出一个弧形开始角度和扫掠角度。
看到图像
ShapeDrawable shapeDrawable=new ShapeDrawable(new ArcShape(220,320));
shapeDrawable.setIntrinsicHeight(100);
shapeDrawable.setIntrinsicWidth(100);
shapeDrawable.getPaint().setColor(Color.RED);
I1=(ImageView)findViewById(R.id.imageView2);
I1.setImageDrawable(shapeDrawable);
链接地址: http://www.djcxy.com/p/71879.html
上一篇: Animate Android Ring Shape's sweep angle
下一篇: Custom picker dialog