我有此代碼可以加載圖像。服務器是安全的。 我得到了迴應:200這意味着好的。然後還要加載正確的網址。 問題是當我運行我的應用程序,圖像不會被加載。Android - 載入圖像Url和顯示在ImageView
try {
Bitmap bitmap=null;
URL imageUrl = new URL(url);
String userPass = username+":"+password;
String encode = Base64.encodeToString(userPass.getBytes(), Base64.DEFAULT);
HttpURLConnection conn = (HttpURLConnection)imageUrl.openConnection();
conn.setRequestProperty("Authorization", "Basic " + encode);
conn.setConnectTimeout(10000);
conn.setReadTimeout(10000);
conn.setInstanceFollowRedirects(true);
int res = conn.getResponseCode();
System.out.println("Response: " + res);
System.out.println("Image Loader URL: " + url);
InputStream is=conn.getInputStream();
OutputStream os = new FileOutputStream(f);
Utils.CopyStream(is, os);
os.close();
bitmap = decodeFile(f);
return bitmap;
} catch (Throwable ex){
ex.printStackTrace();
if(ex instanceof OutOfMemoryError)
memoryCache.clear();
return null;
}
private Bitmap decodeFile(File f){
try {
//decode image size
BitmapFactory.Options o = new BitmapFactory.Options();
o.inJustDecodeBounds = true;
BitmapFactory.decodeStream(new FileInputStream(f),null,o);
//Find the correct scale value. It should be the power of 2.
final int REQUIRED_SIZE=360;
int width_tmp=o.outWidth, height_tmp=o.outHeight;
Log.d("IMAGE SIZE? ", +width_tmp+ " x " + height_tmp);
int scale=1;
while(true){
if(width_tmp/2<REQUIRED_SIZE || height_tmp/2<REQUIRED_SIZE)
break;
width_tmp/=2;
height_tmp/=2;
scale*=2;
}
//decode with inSampleSize
BitmapFactory.Options o2 = new BitmapFactory.Options();
o2.inSampleSize=scale;
return BitmapFactory.decodeStream(new FileInputStream(f), null, o2);
} catch (FileNotFoundException e) {}
return null;
}
/// . . . . . and so on...\
在我logcat..one時間應該SKImageDecoder ::廠返回null
不過,也許我現在something..this我在我的logcat看..
04-17 16:18:57.936: D/libEGL(5216): loaded /system/lib/egl/libGLES_android.so
04-17 16:18:57.940: D/libEGL(5216): loaded /vendor/lib/egl/libEGL_POWERVR_SGX540_120.so
04-17 16:18:57.952: D/libEGL(5216): loaded /vendor/lib/egl/libGLESv1_CM_POWERVR_SGX540_120.so
04-17 16:18:57.955: D/libEGL(5216): loaded /vendor/lib/egl/libGLESv2_POWERVR_SGX540_120.so
04-17 16:18:58.087: D/OpenGLRenderer(5216): Enabling debug mode 0
我想我的圖像被解碼,因爲我登錄IMAGE SIZE?
:然後它記錄了我想要加載的圖像的右側圖像大小。
ImageLoader或渲染部分的問題?
請任何見解。謝謝。
你在哪裏存儲圖像? – Raghunandan
獲取圖像後,我把它放在緩存中。 – elL
你檢查過圖像是否被緩存了嗎?你在內存或sdacard中緩存嗎?檢查他們是否有足夠的內存來緩存圖像。 – Raghunandan