3分钟
6.1 实施步骤
实施步骤
步骤1:新建一个Module,命名为Ex6_1,其他设置默认。
步骤2:设置布局文件,清单如下。
Ex6_1 activity_main.xml清单
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="【进度条Demo】"
/>
<ProgressBar
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/ProgressBarTest"
style="?android:attr/progressBarStyleHorizontal"
/>
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="开始"
android:id="@+id/ButtonStart"
android:onClick="e_View_Clicked"
/>
</LinearLayout>步骤3:编写MainActivity.java文件。清单如下:
Ex6_1 MainActivity.java清单
package com.example.demo.demo_progressbar;
import android.os.Handler;
import android.os.Message;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.ProgressBar;
public class MainActivity extends AppCompatActivity {
ProgressBar mProgressBarTest;
Button mButtonStart;
Runnable mRunnable;
Handler mHandler;
int m_iStep = 0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
f_onCreate();
}
public void f_onCreate() {
f_findView();
f_newRunnable();
f_newHandler();
}
public void f_findView() {
mProgressBarTest = (ProgressBar) findViewById(R.id.ProgressBarTest);
mButtonStart = (Button) findViewById(R.id.ButtonStart);
}
public void f_newRunnable() {
mRunnable = new Runnable() {
@Override
public void run() {
Message message;
try {
while (true) {
Thread.sleep(100);
m_iStep++;
message = new Message();
mHandler.sendMessage(message);
if (m_iStep > 100) m_iStep = 0;
}
} catch (Exception e) {
message = new Message();
message.obj = e;
mHandler.sendMessage(message);
}
}
};
}
public void f_newHandler() {
mHandler = new Handler() {
public void handleMessage(Message message) {
mProgressBarTest.setProgress(m_iStep);
}
};
}
public void e_View_Clicked(View view) {
int iViewID = view.getId();
switch (iViewID) {
case R.id.ButtonStart:
mButtonStart.setEnabled(false);
new Thread(mRunnable).start();
break;
}
}
}
学员评价