我正在处理我的Android应用程序并尝试从Web服务器(本地主机IIS7)下载图像。但不幸的是我的应用程序无法正常工作。实际上,当我运行我的应用程序时,它不显示ImageView内的任何图片。 我编译了我的应用程序,但我没有在logCat中发现任何错误!似乎每件事都没事。只有一条异国情调的消息:
编舞者跳过了32帧 但根据我的研究,我认为它不能影响我的应用程序。 我认为还有一件事,onPostExcute不是Run.but我找不到原因。 这是我的代码:
public class Ads extends Activity {
private InputStream OpenHttpConnection(String urlString) throws IOException{
InputStream in=null;
int response=-1;
URL url=new URL(urlString);
URLConnection conn =url.openConnection();
if(!(conn instanceof HttpURLConnection))
throw new IOException("Not an Http connection ");
try{
HttpURLConnection httpConn=(HttpURLConnection)conn;
httpConn.setAllowUserInteraction(false);
httpConn.setInstanceFollowRedirects(true);
httpConn.setRequestMethod("GET");
httpConn.connect();
response=httpConn.getResponseCode();
if(response== HttpURLConnection.HTTP_OK){
in=httpConn.getInputStream();
}
}
catch(Exception ex){
Log.d("NetWorking",ex.getLocalizedMessage());
throw new IOException("Error connecting");
}
return in;
}
private Bitmap DownloadImag(String URL){
Bitmap bitmap=null;
InputStream in=null;
try{
in=OpenHttpConnection(URL);
bitmap=BitmapFactory.decodeStream(in);
in.close();
}catch(IOException e1){
Log.d("NetworkActivity",e1.getLocalizedMessage());
}
return bitmap;
}
public class DownloadImages extends AsyncTask<String,Void,Bitmap>{
protected Bitmap doInBackground(String...urls){
return DownloadImag(urls[0]);
}
protected void onPostExcute(Bitmap result){
try{
Log.d("Setting ImgView","Ok");
ImageView img=(ImageView)findViewById(R.id.imageView1);
img.setImageBitmap(result);
}
catch(Exception ex){
Log.d("Setting ImgView","Error");
}
}
}
/** Called when the activity first created */
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.ads);
Log.d("Start-Working", "ok");
new DownloadImages().execute("http://10.0.2.2:80/Urgence/document/img/my.jpg");
}
}
我该怎么办?!
答案 0 :(得分:0)
您可以使用一个库来加快图像加载速度, 它可以根据您的要求缓存图像。
它很容易实现为页面中给出的代码段。
你也可以获得像......这样的位图。
// Load image, decode it to Bitmap and return Bitmap synchronously
Bitmap bmp = imageLoader.loadImageSync(imageUri);