【问题标题】:android drawable circle with a sweeping arc带有扫弧的android可绘制圆圈
【发布时间】:2012-02-14 22:29:13
【问题描述】:

我正在尝试绘制类似于进度条的东西。但是,在我的例子中,进度条是一个带有不同颜色的扫弧的圆圈,如下所示(图 2 显示了设计的快照,其中一些进度用黄色表示)。作业完成后,整个圆圈将变为黄色。

为了做到这一点,我想使用 xml 布局创建一个圆圈,我可以使用以下代码来做到这一点:

在 res/drawable/circle.xml 中

<solid android:color="@color/red" />

<size
    android:height="200dp"
    android:width="200dp" />

<padding
    android:bottom="10dp"
    android:left="10dp"
    android:right="10dp"
    android:top="10dp" />

在我的主布局中,我只是将其设置为框架布局的背景...

   <FrameLayout
       android:id="@+id/frameLayout"
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:background="@drawable/circle" >

   </FrameLayout>

</LinearLayout>

我知道如何使用http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/graphics/Arcs.htmlhttp://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/graphics/Arcs.htmlandroid 演示代码中给出的示例来绘制弧线

我在如何将这两者结合起来创建一个全面的动作方面有点挣扎。我知道我们必须创建一个线程并像演示中的那样创建一个 onDraw - 但是如何将扫弧中心设置为绘制圆的中心? Java 代码会是什么样子(在活动中)?谢谢!

【问题讨论】:

  • 我认为您可能只需要创建一个处理动画的自定义视图。从好的方面来说,它应该不会太糟糕。
  • 我明白了,我知道如何根据演示来做到这一点。我希望我可以在 xml 中创建一个完整的布局,然后在代码中添加“扫描”弧部分。如果我们可以将自定义视图放入已经定义的布局中,这将是可能的。
  • 感谢 AedonEtLIRA。我认为这与我之前提到的演示中所示的相同。我意识到可以以编程方式添加视图。但是视图可以“重叠”视图吗?如果是这种情况,我们可以添加所有“静态”部分(包括圆圈),然后添加一个带有“扫弧”动画的自定义视图,该动画位于使用 xml 创建的静态视图之上。
  • 我会看看stackoverflow.com/questions/4901408/… - 看看那里的解决方案加上我上面的评论是否可以帮助我..

标签: android drawable geometry


【解决方案1】:

通过此链接,而不是使用形状创建圆形。

http://code.google.com/p/afreechart/

希望对你有帮助。

【讨论】:

    【解决方案2】:

    我决定采用前面提到的演示中给出的解决方案。我创建了一个自定义视图来表示扫描弧。我把它放在代码中(仅显示相关代码)

        <LinearLayout
           ...>
    
            <com.example.SweepingArcView
                android:id="@+id/sweepingArc"
                android:layout_width="210dp"
                android:layout_height="210dp"
                android:layout_marginTop="20dp"
                android:layout_weight="1" />
    
           ...
        </LinearLayout>
    

    然后我绘制演示代码中给出的扫描弧。感谢所有回复的人!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-10-24
      • 1970-01-01
      • 2011-03-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多