android |如何检查 iamgeButton 的状态是播放还是暂停

android | How to check if state is play or pause of iamgeButton

我正在使用这个 github package android-material-play-pause-view 在我的应用程序中实现动画播放暂停按钮。但是我不知道如何检查当前选择的内容(播放或暂停)。

这里是 xml:

    <com.ohoussein.playpause.PlayPauseView
        android:id="@+id/linuxPlayPause"
        android:layout_width="48dp"
        android:layout_height="48dp"
        android:layout_alignParentStart="true"
        android:layout_below="@+id/spinnerVersion"
        android:layout_marginBottom="10dp"
        android:layout_marginLeft="4dp"
        android:layout_marginTop="14dp"
        android:clickable="true"
        android:foreground="?android:selectableItemBackground"
        app:fill_color="#ffff"
        app:pause_bg="@color/colorPrimary"
        app:play_bg="@color/colorAccent"
        />

我看不到任何 getter 方法来检索此信息,README 中描述的唯一内容似乎是 .toggle() 我也尝试查看源代码但没有发现任何线索. 请帮忙

你可以使用布尔值 isPlay。

boolean isPlay = false;
PlayPauseView view = (PlayPauseView) findViewById(R.id.play_pause_view);
view.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                isPlay = !isPlay;
                view.toggle();
            }
});

如果您想按原样使用库,您可以将背景颜色与 getColor 进行比较,因为您的 app:pause_bg app:play_bg 不同。

如果yourview.getColor()为@color/colorPrimary,则处于暂停状态

否则如果yourview.getColor()是@color/colorAccent,则处于播放状态

if(isPlay(yourPlayPauseView)){
    //...
}:

添加以下功能后:

private boolean isPlay(PlayPauseView yourview) {
    return yourview.getColor() == getResources().getColor(R.color.colorAccent);
}

否则,您可以在 PlayPauseView.java 中添加以下代码:

private int getPlay() {
    return mDrawable.isPlay();
}

并调用 yourview.getPlay() 到 return true(播放)或 false(暂停)。