动画Android Ring Shape的扫描角度

时间:2013-06-09 19:51:35

标签: java android android-layout android-animation shapedrawable

尝试动画Android环形以产生与所示图像序列类似的效果。

Intended Animation

我找到了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创建内半径的能力。

我正在尝试制作流畅的动画。

3 个答案:

答案 0 :(得分:3)

旧线程,但我认为它仍然有用。

我设法使用上面的代码获得了类似的行为:

<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值,直到获得所需的图像。

答案 1 :(得分:1)

实用资料:Android: looking for a drawArc() method with inner & outer radius

使用PorterDuff Clear模式可以“移除”内部,留下圆环形状。然后,您可以通过扩展Animation类重绘来使用Arc的扫描角度。

答案 2 :(得分:0)

你绘制弧形开始角度和扫描角度以不同的方式..你以这种方式划分不同的弧##

See THe Image

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);