教程適合初級:
1.主線程接收下載完成的消息
private Handler mhandler = new Handler(new Handler.Callback() {
@Override
public boolean handleMessage(Message message) {
mprogressBar.setMax(100);//設置最大
mprogressBar.setProgress(counter);//進度值
return false;
}
});
2.LayoutInflater.from布局管理器
/*
從一個Context中,獲得一個布局填充器,這樣你就可以使用這個填充器來把xml布局文件轉為View對象了。
//加載布局管理器
LayoutInflater inflater = LayoutInflater.from(context);
//將xml布局轉換為view對象
convertView = inflater.inflate(R.layout.item_myseallist,parent, false);
//利用view對象,找到布局中的組件
convertView.findViewById(R.id.delete);
*/
mprogressBar = (ProgressBar) LayoutInflater.from(this).inflate(R.layout.process,null);
3.view設置.setProgressBar
mStreetView.setProgressBar(mprogressBar);
4.子線程下載,發送消息
//子線程
private void startProcess() {
new Thread(){
public static final int MSG = 1;
@Override
public void run() {
if (counter< max){
counter += 10;//一次增加10
Message msg = new Message();
msg.what = MSG;
mhandler.sendMessage(msg);
}
}
};
}
5.將進度條設置顏色等。
以下為全部代碼:
public class StreetView extends Activity implements View.OnClickListener{
private com.leador.streetview.truevision.StreetView mStreetView,mStreetView1;
private TextView tv_title;
private LinearLayout ll_back;
private ProgressBar mprogressBar;
int counter=0;
private Handler mhandler = new Handler(new Handler.Callback() {
@Override
public boolean handleMessage(Message message) {
mprogressBar.setMax(100);//設置最大
mprogressBar.setProgress(counter);//進度值
return false;
}
});
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.activity_street_view);
/*
/從一個Context中,獲得一個布局填充器,這樣你就可以使用這個填充器來把xml布局文件轉為View對象了。
//加載布局管理器
LayoutInflater inflater = LayoutInflater.from(context);
//將xml布局轉換為view對象
convertView = inflater.inflate(R.layout.item_myseallist,parent, false);
//利用view對象,找到布局中的組件
convertView.findViewById(R.id.delete);
*/
mprogressBar = (ProgressBar) LayoutInflater.from(this).inflate(R.layout.process,null);
tv_title = (TextView) findViewById(R.id.tv_top);
ll_back = (LinearLayout) findViewById(R.id.ll_back);
mStreetView = (com.leador.streetview.truevision.StreetView) findViewById(R.id.gl);
mStreetView1 = (com.leador.streetview.truevision.StreetView) findViewById(R.id.gl1);
init();
loadStreetView();
startProcess();
}
private void init(){
tv_title.setText("woququququuq");
mStreetView.setProgressBar(mprogressBar);
mStreetView1.setProgressBar(mprogressBar);
ll_back.setOnClickListener(this);
}
//子線程
private void startProcess() {
new Thread(){
public static final int MSG = 1;
@Override
public void run() {
if (counter< max){
counter += 10;//一次增加10
Message msg = new Message();
msg.what = MSG;
mhandler.sendMessage(msg);
}
}
};
}
private void loadStreetView(){
mStreetView.setStreetViewFirstLoadListener(new StreetViewFirstLoadListener() {
@Override
public void firstLoad() {
mStreetView.loadStreetViewByPosition(110.4010705,19.977281293);
}
});
mStreetView1.setStreetViewFirstLoadListener(new StreetViewFirstLoadListener() {
@Override
public void firstLoad() {
mStreetView1.loadStreetViewByPosition(110.4010705,19.977281293);
}
});
}
@Override
public void onClick(View view) {
switch (view.getId()){
case R.id.ll_back:
finish();
break;
}
}
@Override
protected void onDestroy() {
super.onDestroy();
mStreetView.finish();
}
}
-------------------------------------------------------------------------------------------------------------------------------------
--
vv
--