按钮在运行时切换

时间:2016-11-27 18:50:59

标签: java android performance android-studio

在android studio中

我有3个按钮。我希望一个按钮处于活动状态几秒钟,其他两个按钮处于非活动状态,然后随机按钮应激活几秒钟。切换时间应逐渐减少。整个过程持续2分钟。

活动按钮应该有一些特定的颜色。

我似乎没有得到逻辑。如果我得到了这个代码,我会很高兴。

我有基本的布局! MainActivity是默认的! 感谢。

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/activity_main"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.example.android.courtcounter.MainActivity">

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Hello World!"
    android:layout_marginTop="36dp"
    android:id="@+id/Score"
    tools:text="0"
    android:minHeight="52dp"
    android:minWidth="52dp"
    android:textSize="36sp"
    tools:textStyle="bold"
    android:layout_alignParentTop="true"
    android:layout_centerHorizontal="true"
    tools:textAlignment="center" />

<Button
    android:text="3 Point"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginTop="110dp"
    android:id="@+id/button"
    android:layout_below="@+id/textView"
    android:layout_centerHorizontal="true"
    android:elevation="14dp"
    android:background="#ff0000"/>

<Button
    android:text="2 Point"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/button2"
    android:layout_below="@+id/button"
    android:layout_alignLeft="@+id/button"
    android:layout_alignStart="@+id/button"
    android:layout_marginTop="32dp" />

<Button
    android:text="Free Throw"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginTop="27dp"
    android:id="@+id/button3"
    android:layout_below="@+id/button2"
    android:layout_centerHorizontal="true" />
</RelativeLayout>

1 个答案:

答案 0 :(得分:0)

首先,为了切换Button的可见性,您必须编写自己的“可见性管理器”,它可以通过setVisibility(View.Visible)和setVisibility(View)打开和关闭按钮。 GONE)。数据绑定是一种更好的方法,因为您不需要为此编写自己的逻辑。 其次,对于时间间隔使用rxJava库,它有生成sibgle事件(Observable.timer(..))和重复事件(Observable.interval())的方法。 这些事件在后台线程上运行,因此您最终使用.observeOn(AndroidSChedulers.mainThread())。 你应该使用这个库,因为它会更简单,而不是用Handler.postDelayed()方法发明轮子。 根据您的描述,您应该生成定期事件,例如,每秒钟和总时间。当该时间超过某个阈值时,您会采取一些措施。