English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
限时抢购倒计时実現イメージ図
レイアウト:
<LinearLayout android:id="@"+id/ll_xsqg" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" android:paddingTop="8dp android:paddingBottom="8dp android:paddingLeft="16dp"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:textStyle="bold" android:textSize="14sp android:text="@string/xsqg"/> <TextView android:id="@"+id/tv_hour" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="5dp android:paddingTop="3dp android:paddingBottom="3dp android:paddingLeft="5dp android:paddingRight="5dp android:background="@drawable/time_corner android:textColor="@android:color/white android:textSize="12sp android:text="02"/> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="5dp android:textStyle="bold" android:textColor="@android:color/black" android:text=":"/> <TextView android:id="@"+id/tv_minute" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="5dp android:paddingTop="3dp android:paddingBottom="3dp android:paddingLeft="5dp android:paddingRight="5dp android:background="@drawable/time_corner android:textColor="@android:color/white android:textSize="12sp android:text="15"/> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="5dp android:textStyle="bold" android:textColor="@android:color/black" android:text=":"/> <TextView android:id="@"+id/tv_second" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="5dp android:paddingTop="3dp android:paddingBottom="3dp android:paddingLeft="5dp android:paddingRight="5dp android:background="@drawable/time_corner android:textColor="@android:color/white android:textSize="12sp android:text="36"/> </LinearLayout>
コード実装
public class HomeActivity extends Activity { @Bind(R.id.tv_hour) TextView tvHour; @Bind(R.id.tv_minute) TextView tvMinute; @Bind(R.id.tv_second) TextView tvSecond; private long mHour = 02; private long mMin = 15; private long mSecond = 36; private boolean isRun = true; private Handler timeHandler = new Handler() { @Override public void handleMessage(Message msg) { super.handleMessage(msg); if (msg.what==1) { computeTime(); if (mHour<10{ tvHour.setText("0"+mHour+""; }else { tvHour.setText("0"+mHour+""; } if (mMin<10{ tvMinute.setText("0"+mMin+""; }else { tvMinute.setText(mMin+""; } if (mSecond<10{ tvSecond.setText("0"+mSecond+""; }else { tvSecond.setText(mSecond+""; } } } }; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); requestWindowFeature(Window.FEATURE_NO_TITLE); setContentView(R.layout.activity_home); ButterKnife.bind(this); startRun(); } /** * カウントダウンを開始する */ private void startRun() { new Thread(new Runnable() { @Override public void run() { // TODO Auto-生成されたメソッドスタブ while (isRun) { try { Thread.sleep(1000); // sleep 1000ms Message message = Message.obtain(); timeHandler.sendMessage(message); 1; catch (Exception e) { } e.printStackTrace(); } } } }).start(); } /** * カウントダウン計算 */ private void computeTime() { mSecond--; if (mSecond < 0) { mMin--; mSecond = 59; if (mMin < 0) { mMin = 59; mHour--; } } } }
これで本文の全てが終わりです。皆様の学習に役立てば幸いです。また、呐喊チュートリアルを多くのサポートをお願いします。
声明:本文の内容はインターネットから取得しており、著作権者に帰属します。インターネットユーザーが自発的に貢献し、自己でアップロードしたものであり、本サイトは所有権を持ちません。また、人工的な編集は行われていません。著作権侵害を疑う内容があれば、メールを送信してください:notice#oldtoolbag.com(メール送信時、#を@に変更してください。報告を行い、関連する証拠を提供してください。一旦確認が取れましたら、本サイトは即座に侵害を疑われる内容を削除します。)