-1

我是新手,我有一个问题,我想用函数处理程序运行图像,但我失败了,比如在这个代码上运行图像的代码是什么?可以帮我解决这个问题吗?

Intent intent = getIntent();

 String url= intent.getStringExtra("URL");
tombol2 = (Button) findViewById(R.id.button2);

iv = (ImageView) findViewById(R.id.imageView1);
Drawable d1=LoadImageFromWebOperations(url);
iv.setImageDrawable(d1);

}
private Drawable LoadImageFromWebOperations(String url)
        {
             try
             {
                 InputStream is = (InputStream) new URL(url).getContent();
                 Drawable d = Drawable.createFromStream(is, "src name");
                 return d;
        }catch (Exception e) {
                 System.out.println("Exc="+e);
                 return null;
             }  
        }
   }
4

2 回答 2

0

它已修复,只需在 LoadImageWebOperations 之前提供此可运行文件

runnable = new Runnable() {

        @Override
        public void run() {
            try {
                LoadImageFromWebOperations(d1);
            } catch (Exception e) {
                e.getStackTrace();
            }
            new Handler().postDelayed(runnable, 10000);
        }
    };
    new Handler().postDelayed(runnable, 10000);     
}
于 2013-09-08T08:49:08.643 回答
0

如果你想使用 Handler 使用它,如下所示。

但是我看到您正在 ui 线程上执行与网络相关的操作,这在蜂窝后是不可能的。您必须使用线程或异步任务。你会得到NetworkOnMainThreadException

http://developer.android.com/reference/android/os/NetworkOnMainThreadException.html

我建议你使用threadAsyncTask

http://developer.android.com/reference/android/os/AsyncTask.html

Handler m_handler;
Runnable m_handlerTask ;  
m_handler = new Handler();   
m_handlerTask = new Runnable()
{
  @Override 
  public void run() { 

    // do something  
    m_handler.postDelayed(m_handlerTask, 1000);    

  }
  };
 m_handlerTask.run();
于 2013-08-28T03:36:43.960 回答