I have this code to load an image. The server is secured. I got a response: 200 which means okay. Then also the right url is to be loaded. The problem is when i run my app, the image wont be loaded.
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...\
In my logcat..one time it should SKImageDecoder::Factory returned null
But then, maybe i did something..this now what i see in my 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
I guess my image was decoded since i logged IMAGE SIZE?
: then it logged the right image size of the image i want to load.
Is the problem on the ImageLoader or the rendering part?
Any insights please. Thanks.