Android 倒计时弹窗
时间: 2023-08-05 08:38:03 浏览: 56
好的,针对 Android 平台实现倒计时弹窗也是比较常见的需求,可以参考以下步骤:
1. 在布局文件中定义一个弹窗的布局,例如:
```xml
<LinearLayout
android:id="@+id/popup_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:gravity="center"
android:padding="16dp"
android:background="@android:color/white">
<TextView
android:id="@+id/timer_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="24sp"
android:textColor="@android:color/black"
android:text="60" />
<TextView
android:id="@+id/message_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="16sp"
android:textColor="@android:color/black"
android:text="这是一个倒计时弹窗" />
</LinearLayout>
```
2. 在 Activity 或者 Fragment 中实现倒计时逻辑,例如:
```java
public class MainActivity extends AppCompatActivity {
private static final int COUNTDOWN_TIME = 60; // 倒计时时间(单位:秒)
private TextView mTimerText;
private TextView mMessageText;
private Dialog mPopupDialog;
private CountDownTimer mCountDownTimer;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mTimerText = findViewById(R.id.timer_text);
mMessageText = findViewById(R.id.message_text);
// 创建倒计时弹窗
mPopupDialog = new Dialog(this);
mPopupDialog.setContentView(R.layout.popup_layout);
mPopupDialog.setCancelable(false);
mPopupDialog.setCanceledOnTouchOutside(false);
// 开始倒计时
startCountdown();
}
private void startCountdown() {
mCountDownTimer = new CountDownTimer(COUNTDOWN_TIME * 1000, 1000) {
@Override
public void onTick(long millisUntilFinished) {
int seconds = (int) (millisUntilFinished / 1000);
mTimerText.setText(String.valueOf(seconds));
}
@Override
public void onFinish() {
dismissPopup();
}
};
mCountDownTimer.start();
// 显示倒计时弹窗
mPopupDialog.show();
}
private void dismissPopup() {
if (mPopupDialog != null && mPopupDialog.isShowing()) {
mPopupDialog.dismiss();
}
}
@Override
protected void onDestroy() {
super.onDestroy();
// 停止倒计时
if (mCountDownTimer != null) {
mCountDownTimer.cancel();
}
// 关闭弹窗
dismissPopup();
}
}
```
在这个例子中,我们使用了 Android 提供的 CountDownTimer 类来实现倒计时功能。在倒计时结束时,我们关闭了弹窗,并且在 Activity 或者 Fragment 销毁时停止了倒计时。您可以根据实际需求修改弹窗的布局和样式。