按钮,进度圈和不定式加载圈在同一个小部件中?

时间:2018-01-26 15:38:26

标签: android button android-progressbar

我正在寻找在一个小部件中实现三个不同的功能。小部件将放置在显示器的中心,我将尝试解释它应该如何工作。

当用户打开应用时,它会显示以下活动:

enter image description here

当用户点击圆圈内的文字时,它会创建一个背景AsyncTask,用于连接,验证并从设备获取状态。当它连接,验证和要求设备状态时,ProgressBar圆圈应该在无限循环中运行,就像加载圆圈一样。

如果应用成功连接到设备,则圈子和文字的颜色会发生变化:

enter image description here

此处用户需要按住按钮3秒才能启用。当用户按住按钮时,ProgressBar正在从0%加载到100%(每秒33.3%)。之后,当应用与设备通信时,ProgressBar会返回到无限加载循环。

该应用程序的最后一个阶段是禁用该设备,它应该与启用阶段的工作方式相同。

enter image description here

当呼叫MainActivity().onPause()时,应用会与设备断开连接。

我是否需要创建3个静态drawable和5个动画drawable?或者这是一个更好的方法吗?我该如何创建小部件?我是否应该在窗口小部件中创建extends ButtonProgressBar的小部件。或者我应该创建一个extends ProgressBarimplements一个OnClickListener的小部件?

自从我上次开发适用于Android的东西以来已经很久了。我从未在需要多种功能的小部件中工作过。所以我需要这里的建议。

1 个答案:

答案 0 :(得分:0)

您可以使用具有相同高度和宽度的不确定进度条,例如:

<ProgressBar
    android:id="@+id/progressBar"
    android:layout_width="your_width"
    android:layout_height="your_height"
    android:indeterminate="true" /> 

将进度条包含在相对布局中,以便在圆圈上方定位。

<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent"
    android:layout_height="match_parent">


    <YourView
        android:layout_width = "match_parent"
        android:layout_height = "match_parent">

    </YourView>


    <ProgressBar
        android:id="@+id/progressBar"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:indeterminate="true" />
</RelativeLayout>