Android(安卓)进度条 ProgressBar (模拟图片加载过程)
16lz
2021-01-24
⭐.使用进度条模拟图片加载过程,加载完成则显示图片。
效果如下:
所需控件(修改主布局文件):
依次放置
显示进度值的文本框,
一个水平进度条组件,
一个按钮,
一个图片显示控件。
将按钮单击方法改为myclick;将图片显示和水平进度条设为隐藏,android:visibility = “gone”。
修改主Activity文件:
除了定义XML布局文件中的组件外,还定义了一个处理消息的Handler类对象。
在定义Handler类对象中,写了handleMessage0方法,通过消息Message带来的值更新进度以及提示信息。
更新完成,提示下载完成并显示图片imageView.setVisibility(View.VISIBLE);
package com.example.dn.zxyapplication_03;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.widget.Button;import android.widget.ImageView;import android.widget.ProgressBar;import android.widget.TextView;import android.widget.Toast;import android.view.View;import android.os.Message;import android.os.Handler;public class MainActivity extends AppCompatActivity{ private ImageView imageView; private ProgressBar progressBar; private TextView pbtext; private Handler myHandler; private int pvalue; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); pbtext=(TextView)findViewById(R.id.pbText); Button button=(Button) findViewById(R.id.button); progressBar=(ProgressBar) findViewById(R.id.pb); imageView=(ImageView) findViewById(R.id.image); //在自定义Handler类中,重写handleMessage()方法 //通过Message的值更新进度和提示信息 myHandler=new Handler(){ @Override public void handleMessage(Message msg){ progressBar.setProgress(msg.arg1); //将进度条进度更新到msg.arg1的值 pbtext.setText("正在下载中...(" +msg.arg1+ "%)" ); //更新提示信息 if(msg.what==0x222){ //msg==100,弹出提示信息“下载完成” Toast.makeText(MainActivity.this,"下载完成", Toast.LENGTH_SHORT).show(); //msg==100,将图片设置为显示 imageView.setVisibility(View.VISIBLE); } } }; } public void myClick(View view){ imageView.setVisibility(View.GONE); //set初识状态和初始值 progressBar.setVisibility(View.VISIBLE); progressBar.setProgress(0); new Thread(new Runnable() { @Override public void run() { pvalue=0; while(true){ pvalue+=(int)(Math.random()*10); try{ Thread.sleep(100); }catch (Exception e){ e.printStackTrace(); } Message mes=new Message(); if(pvalue<100){ mes.arg1=pvalue; mes.what=0x111; myHandler.sendMessage(mes); }else{ mes.arg1=100; mes.what=0x222; myHandler.sendMessage(mes); break; } } } }).start(); }}
更多相关文章
- 家庭版记账本app进度之关于android界面布局的相关学习
- Android(安卓)聊天界面对话
- android 网络图片双缓存
- Android圆形进度显示控件的SectorProgressView的使用
- Android实现自定义对话框(Dialog)
- Android显示圆角图片,可指定图片某几个角为圆角
- Android编程实现自定义ProgressBar样式示例(背景色及一级、二级
- Android(安卓)ImageView的ScaleType属性
- Android(安卓)适配不同分辨率&hdpi、mdpi、ldpi&横屏竖屏