⭐.使用进度条模拟图片加载过程,加载完成则显示图片。

效果如下:

所需控件(修改主布局文件):
     依次放置
    显示进度值的文本框,
    一个水平进度条组件,
    一个按钮,
    一个图片显示控件。

将按钮单击方法改为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();    }}

更多相关文章

  1. 家庭版记账本app进度之关于android界面布局的相关学习
  2. Android(安卓)聊天界面对话
  3. android 网络图片双缓存
  4. Android圆形进度显示控件的SectorProgressView的使用
  5. Android实现自定义对话框(Dialog)
  6. Android显示圆角图片,可指定图片某几个角为圆角
  7. Android编程实现自定义ProgressBar样式示例(背景色及一级、二级
  8. Android(安卓)ImageView的ScaleType属性
  9. Android(安卓)适配不同分辨率&hdpi、mdpi、ldpi&横屏竖屏

随机推荐

  1. android flutter打包 apk 及接facebook
  2. 安卓在代码中设置TextView的drawableLeft
  3. Android(安卓)自定义控件 GuideView 引导
  4. 【android】Android(安卓)7.0适配步骤
  5. android恶意程序分析 (四)
  6. Android消息推送机制调研
  7. android支持的视频音频硬解码器
  8. Android start from now on
  9. Android通过tcpdump抓包(wifi, 2g, 3g都
  10. android对话框大全