Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 显示progressbar,直到从服务器下载图像_Android_Progress Bar - Fatal编程技术网

Android 显示progressbar,直到从服务器下载图像

Android 显示progressbar,直到从服务器下载图像,android,progress-bar,Android,Progress Bar,亲爱的,我能够显示来自URL的图像,这意味着URL存储在一个数组中,我有两个按钮“下一步”,“上一步”为了在我点击按钮时一个接一个地查看图像,图像作为响应从服务器下载,现在我想在图像从服务器下载时显示进度条,当响应到来时,进度条自动隐藏菜单显示进度条,直到响应作为图像未显示在屏幕上,以及当图像显示进度条时活动结束…所以如何做我的一段代码显示一个接一个的按钮点击图片如下…请在我的代码中修改,如果可能的话bcoz我在android和java方面也是新的..Than提前了很多 public class

亲爱的,我能够显示来自URL的图像,这意味着URL存储在一个数组中,我有两个按钮“下一步”,“上一步”为了在我点击按钮时一个接一个地查看图像,图像作为响应从服务器下载,现在我想在图像从服务器下载时显示进度条,当响应到来时,进度条自动隐藏菜单显示进度条,直到响应作为图像未显示在屏幕上,以及当图像显示进度条时活动结束…所以如何做我的一段代码显示一个接一个的按钮点击图片如下…请在我的代码中修改,如果可能的话bcoz我在android和java方面也是新的..Than提前了很多

public class artspacedetailShowingNow extends Activity implements OnClickListener {
private int imageCounter = 0;
private ImageView imageLoader;
private String[] imageList = {"http://www.artealdiaonline.com/var/artealdia_com/storage/images/argentina/directorio/galerias/ruth_benzacar/artistas/martin_di_girolamo._diosas/198915-1-esl-AR/MARTIN_DI_GIROLAMO._Diosas.jpg","http://www.artealdiaonline.com/var/artealdia_com/storage/images/argentina/directorio/galerias/ruth_benzacar/artistas/jorge_macchi._la_espera/198929-1-esl-AR/JORGE_MACCHI._La_espera.jpg","http://www.artealdiaonline.com/var/artealdia_com/storage/images/argentina/directorio/galerias/ruth_benzacar/artistas/leon_ferrari._hongo_nuclear/198950-1-esl-AR/LEON_FERRARI._Hongo_Nuclear.jpg","http://www.artealdiaonline.com/var/artealdia_com/storage/images/argentina/directorio/galerias/ruth_benzacar/artistas/martin_sastre._fiebre/198922-1-esl-AR/MARTIN_SASTRE._Fiebre.jpg"};
    public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.showingnow);
       imageLoader = (ImageView) findViewById(R.id.imageLoader);
     Button next = (Button) findViewById(R.id.next);
    Button back = (Button) findViewById(R.id.back);
    next.setOnClickListener(this);
    back.setOnClickListener(this);
    back.setEnabled(false);
    this.loadImage(imageList[imageCounter]);

}
@Override
 public void onClick(View v)
{
String imagePath = null;
  switch (v.getId())
{
case R.id.next:
    Log.i("Tag","tag");
    if(imageCounter < imageList.length)
    {
        imageCounter++;
        imagePath = imageList[imageCounter];
        if (imageCounter==(imageList.length)-1)
        {
            { 
                Button next=(Button)findViewById(R.id.next); 
               next.setEnabled(false); 
             }
        }
        else
        {
            Button back=(Button)findViewById(R.id.back); 
            back.setEnabled(true); 

        }
    }
    break;
case R.id.back:
    if(imageCounter > 0)
    {
        imageCounter--;
        imagePath = imageList[imageCounter];
        if (imageCounter==0) 
        { 
            Button back=(Button)findViewById(R.id.back); 
            back.setEnabled(false); 

        }
        else
        {
            Button next=(Button)findViewById(R.id.next); 
             next.setEnabled(true);

        }
    }
    break;
}
this.loadImage(imagePath);
}
private void loadImage(String imagePath)
{   
  try {
      URL aURL = new URL(imagePath);
      URLConnection conn = aURL.openConnection();
      conn.connect();
      InputStream is = conn.getInputStream();
      BufferedInputStream bis = new BufferedInputStream(is);
     Bitmap bm = BitmapFactory.decodeStream(bis);

      imageLoader.setImageBitmap(bm);
      imageLoader.setImageBitmap(bm);
  } 

}
公共类artspacedetailShowingNow扩展活动实现OnClickListener{
专用int imageCounter=0;
私有ImageView图像加载器;
私有字符串[]imageList={”http://www.artealdiaonline.com/var/artealdia_com/storage/images/argentina/directorio/galerias/ruth_benzacar/artistas/martin_di_girolamo._diosas/198915-1-esl-AR/MARTIN_DI_GIROLAMO._Diosas.jpg","http://www.artealdiaonline.com/var/artealdia_com/storage/images/argentina/directorio/galerias/ruth_benzacar/artistas/jorge_macchi._la_espera/198929-1-esl-AR/JORGE_MACCHI._La_espera.jpg","http://www.artealdiaonline.com/var/artealdia_com/storage/images/argentina/directorio/galerias/ruth_benzacar/artistas/leon_ferrari._hongo_nuclear/198950-1-esl-AR/LEON_FERRARI._Hongo_Nuclear.jpg","http://www.artealdiaonline.com/var/artealdia_com/storage/images/argentina/directorio/galerias/ruth_benzacar/artistas/martin_sastre._fiebre/198922-1-esl-AR/MARTIN_SASTRE._Fiebre.jpg"};
创建时的公共void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.showingnow);
imageLoader=(ImageView)findViewById(R.id.imageLoader);
按钮下一步=(按钮)findViewById(R.id.next);
按钮返回=(按钮)findViewById(R.id.back);
next.setOnClickListener(this);
back.setOnClickListener(this);
back.setEnabled(false);
这个.loadImage(imageList[imageCounter]);
}
@凌驾
公共void onClick(视图v)
{
字符串imagePath=null;
开关(v.getId())
{
案例R.id.next:
Log.i(“标签”、“标签”);
if(imageCounter0)
{
图像计数器--;
imagePath=imageList[imageCounter];
如果(imageCounter==0)
{ 
按钮返回=(按钮)findViewById(R.id.back);
back.setEnabled(false);
}
其他的
{
按钮下一步=(按钮)findViewById(R.id.next);
next.setEnabled(true);
}
}
打破
}
这个.loadImage(imagePath);
}
私有void loadImage(字符串imagePath)
{   
试一试{
URL aURL=新URL(imagePath);
URLConnection conn=aURL.openConnection();
连接();
InputStream is=conn.getInputStream();
BufferedInputStream bis=新的BufferedInputStream(is);
位图bm=BitmapFactory.decodeStream(bis);
设置图像位图(bm);
设置图像位图(bm);
} 
}

在代码中使用处理程序的概念来实现这一点

这是密码

ProgressDialog _progressDialog = ProgressDialog.show(this,"Saving Data","Please wait......");
settintAdater();

 private void settingAdater(){

        Thread _thread = new Thread(){

            public void run() {

                Message _msg = new Message();
                _msg.what = 1; 
                 // Do your task where you want to rerieve data to set in adapet
                YourCalss.this._handle.sendMessage(_msg);
            };
        };
        _thread.start();
    }
 Handler _handle = new Handler(){

        public void handleMessage(Message msg) {

            switch(msg.what){

                case 1:
                    _progressDialog.dismiss();
                     listview.setAdapter();
            }
        }
 }

在图像下载之前,请尝试使用asyncTask方法显示progressbar

这里是它的示例代码

private class ImageDownload extends AsyncTask<String , Void, Void>(){

                        @Override
                        protected Void doInBackground(String... params) {
                            loadImage(params[0]);
                            return null;
                        }
                        @Override
                        protected void onPostExecute(Void result) {

                            bar.dismiss();
                            super.onPostExecute(result);
                        }
                        @Override
                        protected void onPreExecute() {
                            bar = new ProgressDialog(activity);
                            bar.setMessage("Processing...");
                            bar.setIndeterminate(true);
                            super.onPreExecute();
                        }

                    }
私有类ImageDownload扩展了AsyncTask(){
@凌驾
受保护的Void doInBackground(字符串…参数){
loadImage(参数[0]);
返回null;
}
@凌驾
受保护的void onPostExecute(void结果){
bar.dispose();
super.onPostExecute(结果);
}
@凌驾
受保护的void onPreExecute(){
bar=新建进度对话框(活动);
设置消息(“处理…”);
bar.setUndeterminate(真);
super.onPreExecute();
}
}
创建局部变量ProgressBar; 替换此行
newimagedownload()。执行(imageURL);
而不是
loadImage(imageURL);

有关asyncTask的更多信息,请检查此项

public class artspacedetailShowingNow extends Activity implements OnClickListener {
private int imageCounter = 0;
private ImageView imageLoader;
private ProgressDialog bar;
private String[] imageList = {"http://www.artealdiaonline.com/var/artealdia_com/storage/images/argentina/directorio/galerias/ruth_benzacar/artistas/martin_di_girolamo._diosas/198915-1-esl-AR/MARTIN_DI_GIROLAMO._Diosas.jpg","http://www.artealdiaonline.com/var/artealdia_com/storage/images/argentina/directorio/galerias/ruth_benzacar/artistas/jorge_macchi._la_espera/198929-1-esl-AR/JORGE_MACCHI._La_espera.jpg","http://www.artealdiaonline.com/var/artealdia_com/storage/images/argentina/directorio/galerias/ruth_benzacar/artistas/leon_ferrari._hongo_nuclear/198950-1-esl-AR/LEON_FERRARI._Hongo_Nuclear.jpg","http://www.artealdiaonline.com/var/artealdia_com/storage/images/argentina/directorio/galerias/ruth_benzacar/artistas/martin_sastre._fiebre/198922-1-esl-AR/MARTIN_SASTRE._Fiebre.jpg"};
    public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.showingnow);
       imageLoader = (ImageView) findViewById(R.id.imageLoader);
     Button next = (Button) findViewById(R.id.next);
    Button back = (Button) findViewById(R.id.back);
    next.setOnClickListener(this);
    back.setOnClickListener(this);
    back.setEnabled(false);
    new ImageDownload().execute(imageList[imageCounter]); 
    //this.loadImage(imageList[imageCounter]);

}
@Override
 public void onClick(View v)
{
String imagePath = null;
  switch (v.getId())
{
case R.id.next:
    Log.i("Tag","tag");
    if(imageCounter < imageList.length)
    {
        imageCounter++;
        imagePath = imageList[imageCounter];
        if (imageCounter==(imageList.length)-1)
        {
            { 
                Button next=(Button)findViewById(R.id.next); 
               next.setEnabled(false); 
             }
        }
        else
        {
            Button back=(Button)findViewById(R.id.back); 
            back.setEnabled(true); 

        }
    }
    break;
case R.id.back:
    if(imageCounter > 0)
    {
        imageCounter--;
        imagePath = imageList[imageCounter];
        if (imageCounter==0) 
        { 
            Button back=(Button)findViewById(R.id.back); 
            back.setEnabled(false); 

        }
        else
        {
            Button next=(Button)findViewById(R.id.next); 
             next.setEnabled(true);

        }
    }
    break;
}
 new ImageDownload().execute(imagePath);
//this.loadImage(imagePath);
}
private void loadImage(String imagePath)
{   
  try {
      URL aURL = new URL(imagePath);
      URLConnection conn = aURL.openConnection();
      conn.connect();
      InputStream is = conn.getInputStream();
      BufferedInputStream bis = new BufferedInputStream(is);
     Bitmap bm = BitmapFactory.decodeStream(bis);

      imageLoader.setImageBitmap(bm);
      imageLoader.setImageBitmap(bm);
  }

private class ImageDownload extends AsyncTask<String , Void, Void>(){

                        @Override
                        protected Void doInBackground(String... params) {
                            loadImage(params[0]);
                            return null;
                        }
                        @Override
                        protected void onPostExecute(Void result) {

                            bar.dismiss();
                            super.onPostExecute(result);
                        }
                        @Override
                        protected void onPreExecute() {
                            bar = new ProgressDialog(activity);
                            bar.setMessage("Processing...");
                            bar.setIndeterminate(true);
                            super.onPreExecute();
                        }

                    }
}
公共类artspacedetailShowingNow扩展活动实现OnClickListener{
专用int imageCounter=0;
私有ImageView图像加载器;
专用对话框栏;
私有字符串[]imageList={”http://www.artealdiaonline.com/var/artealdia_com/storage/images/argentina/directorio/galerias/ruth_benzacar/artistas/martin_di_girolamo._diosas/198915-1-esl-AR/MARTIN_DI_GIROLAMO._Diosas.jpg","http://www.artealdiaonline.com/var/artealdia_com/storage/images/argentina/directorio/galerias/ruth_benzacar/artistas/jorge_macchi._la_espera/198929-1-esl-AR/JORGE_MACCHI._La_espera.jpg","http://www.artealdiaonline.com/var/artealdia_com/storage/images/argentina/directorio/galerias/ruth_benzacar/artistas/leon_ferrari._hongo_nuclear/198950-1-esl-AR/LEON_FERRARI._Hongo_Nuclear.jpg","http://www.artealdiaonline.com/var/artealdia_com/storage/images/argentina/directorio/galerias/ruth_benzacar/artistas/martin_sastre._fiebre/198922-1-esl-AR/MARTIN_SASTRE._Fiebre.jpg"};
创建时的公共void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.showingnow);
图像加载