首頁 > 軟體

Android實現圓圈倒計時

2022-08-09 14:01:22

本文範例為大家分享了Android實現圓圈倒計時的具體程式碼,供大家參考,具體內容如下

1. 顯示效果如下

2. 首先是建立shape的xml檔案

在res/drawable目錄下建立 shape_round_textview.xml檔案,檔案程式碼如下:

<?xml version="1.0" encoding="UTF-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="oval"
    android:useLevel="false">
    <solid
        android:color="#FFFCFC" />
    <stroke
        android:width="1dp"
        android:color="#7468BE"
    />
    <size
        android:width="50dp"
        android:height="50dp"
    />
</shape>

3.然後就是在Layout佈局檔案裡面使用定義的shape

我自己做的在一個橫向佈局的LinearLayout裡面把倒計時放到最右邊(中間TextView的目的是把倒計時的TextView擠到最右邊去 )顯示如圖:

佈局檔案程式碼:

<LinearLayout
        android:layout_marginTop="20dp"
        android:orientation="horizontal"
        android:layout_width="match_parent"
        android:layout_height="wrap_content">
        <ImageButton
            android:layout_marginLeft="10dp"
            android:id="@+id/go_back"
            android:layout_width="36dp"
            android:layout_height="36dp"
            android:background="@drawable/go_back"
            />
        <TextView
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            />
        <TextView
            android:layout_marginRight="10dp"
            android:id="@+id/time_down"
            android:layout_width="50dp"
            android:layout_height="50dp"
            android:text="50"
            android:textSize="15sp"
            android:gravity="center"
            android:background="@drawable/shape_round_textview"
            />

</LinearLayout>

4.最後是java檔案裡的程式碼

public class StateModeActivity extends AppCompatActivity {

    private TextView tx_time;
    
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        //隱藏預設標題列
        if (getSupportActionBar() != null){
            getSupportActionBar().hide();
        }
        setContentView(R.layout.activity_state_mode);
        
        tx_time = findViewById(R.id.time_down);
        //倒計時顯示
        ValueAnimator animator = ValueAnimator.ofInt(50,0);
        //設定時間
        animator.setDuration(50000);
        //均勻顯示
        animator.setInterpolator(new LinearInterpolator());
        animator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
            @Override
            public void onAnimationUpdate(ValueAnimator animation) {
                int value = (Integer) animation.getAnimatedValue();
                tx_time.setText(value+"");
                if(value==0)
                    startActivity(new Intent(StateModeActivity.this,MainActivity.class));
            }
        });
        animator.start();
        }

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援it145.com。


IT145.com E-mail:sddin#qq.com