我正在嘗試將圖像從 Web 服務器檢索到我的應用程序中。但是,當我在應用程序中查看圖像時,應用程序崩潰了。這是代碼:class DownloadFileFromURL extends AsyncTask<String, String, String> { private String file_url=null; /** * Before starting background thread * Show Progress Bar Dialog * */ @Override protected void onPreExecute() { super.onPreExecute(); toggleProgress(); } public boolean dir_exists(String dir_path) { boolean ret = false; File dir = new File(dir_path); if(dir.exists() && dir.isDirectory()) ret = true; return ret; } /** * Downloading file in background thread * */ @Override protected String doInBackground(String... f_url) { int count; try { URL url = new URL(f_url[0]); URLConnection conection = url.openConnection(); conection.connect(); // this will be useful so that you can show a tipical 0-100% progress bar int lenghtOfFile = conection.getContentLength(); // download the file InputStream input = new BufferedInputStream(url.openStream(), 8192); String dir_path = Environment.getExternalStorageDirectory().toString() + getResources().getString(R.string.DownloadFolder); if (!dir_exists(dir_path)){ File directory = new File(dir_path); if(directory.mkdirs()){ Log.v("dir","is created 1"); }else{ Log.v("dir","not created 1"); } if(directory.mkdir()){ Log.v("dir","is created 2"); }else{ Log.v("dir","not created 2"); } }else{ Log.v("dir","is exist"); }
2 回答

嚕嚕噠
TA貢獻1784條經驗 獲得超7個贊
根據設備的顯示尺寸,在顯示之前調整圖像大小是一個很好的方法。試試這個:
//->reduce size of bitmap for displaying on imageView
Bitmap bmp = BitmapFactory.decodeFile(file.getPath());
float RealWidth = bmp.getWidth();
float RealHeight = bmp.getHeight();
int NewWidth, NewHeight;
if (imageView.getWidth() > imageView.getHeight()) {
NewWidth = imageView.getWidth();
NewHeight = (int) ((RealHeight * NewWidth) / RealWidth);
} else {
NewHeight = imageView.getHeight();
NewWidth = (int) ((RealWidth * NewHeight) / RealHeight);
}
bmp = Bitmap.createScaledBitmap(bmp, NewWidth, NewHeight, false);
imageView.setImageBitmap(bmp);
添加回答
舉報
0/150
提交
取消