Android:由于格式问题,我无法下载必须使用 URL 的图像
Android: I am unable to download an image with the URL I have to use due to formatting issues
我正在使用 API,它 return 是照片 URL 的字符串。然而,它的格式很奇怪,这导致我在使用 Volley(或任何其他与此相关的方法)下载图像时出现问题。
我的代码如下所示:
imageview = (ImageView) findViewById(R.id.imageView);
String web_url = "http:\/\/static.giantbomb.com\/uploads\/square_avatar\/8\/87790\/1814630-box_ff7.png";
String web_url2 = "http://www.finalfantasyviipc.com/images/media_cloud_big.jpg";
ImageRequest ir = new ImageRequest(web_url2, new Response.Listener<Bitmap>() {
@Override
public void onResponse(Bitmap response) {
imageview.setImageBitmap(response);
Log.d("image was ", "set");
}
public void onErrorResponse(VolleyError error) {
Toast.makeText(getApplicationContext(), "ERROR: " + error.getMessage(), Toast.LENGTH_SHORT).show();
Log.d("ERROR", error.getMessage());
}
}, 0, 0, null, null);
requestQueue.add(ir);
如您所见,第二个 URL 工作正常,但第一个 URL,带有许多反斜杠和正斜杠的 return 将不是图像。您可以将两者都复制到您的浏览器中,它们工作正常,但我的 Android 解析无法读取第一个。有没有人对如何从第一个 link 获取图像有任何建议?我尝试过的几乎所有东西都使用字符串,这似乎是问题的核心部分。
感谢您的帮助!
-锡尔
You can copy both into your browser and they work fine, but the first one cannot be read by my Android parsing
第一个 URL 肯定是格式错误,但它在浏览器中工作的原因是它们自动将反斜杠转换为正斜杠,并且大多数网络服务器倾向于忽略多个连续的正斜杠。
例如,如果我在Chrome(OSX)中输入那个URL,地址栏中的URL就会变成:
http://static.giantbomb.com///uploads///square_avatar///8///87790///1814630-box_ff7.png
这似乎工作正常。因此,要解决 Android 上的问题,只需执行相同的操作:
web_url = web_url.replace("\", "/");
甚至更好:
web_url = web_url.replace("\", "");
这应该会将 URL 转换为 http://static.giantbomb.com/uploads/square_avatar/8/87790/1814630-box_ff7.png,从而解决您的问题。
我正在使用 API,它 return 是照片 URL 的字符串。然而,它的格式很奇怪,这导致我在使用 Volley(或任何其他与此相关的方法)下载图像时出现问题。
我的代码如下所示:
imageview = (ImageView) findViewById(R.id.imageView);
String web_url = "http:\/\/static.giantbomb.com\/uploads\/square_avatar\/8\/87790\/1814630-box_ff7.png";
String web_url2 = "http://www.finalfantasyviipc.com/images/media_cloud_big.jpg";
ImageRequest ir = new ImageRequest(web_url2, new Response.Listener<Bitmap>() {
@Override
public void onResponse(Bitmap response) {
imageview.setImageBitmap(response);
Log.d("image was ", "set");
}
public void onErrorResponse(VolleyError error) {
Toast.makeText(getApplicationContext(), "ERROR: " + error.getMessage(), Toast.LENGTH_SHORT).show();
Log.d("ERROR", error.getMessage());
}
}, 0, 0, null, null);
requestQueue.add(ir);
如您所见,第二个 URL 工作正常,但第一个 URL,带有许多反斜杠和正斜杠的 return 将不是图像。您可以将两者都复制到您的浏览器中,它们工作正常,但我的 Android 解析无法读取第一个。有没有人对如何从第一个 link 获取图像有任何建议?我尝试过的几乎所有东西都使用字符串,这似乎是问题的核心部分。
感谢您的帮助!
-锡尔
You can copy both into your browser and they work fine, but the first one cannot be read by my Android parsing
第一个 URL 肯定是格式错误,但它在浏览器中工作的原因是它们自动将反斜杠转换为正斜杠,并且大多数网络服务器倾向于忽略多个连续的正斜杠。
例如,如果我在Chrome(OSX)中输入那个URL,地址栏中的URL就会变成:
http://static.giantbomb.com///uploads///square_avatar///8///87790///1814630-box_ff7.png
这似乎工作正常。因此,要解决 Android 上的问题,只需执行相同的操作:
web_url = web_url.replace("\", "/");
甚至更好:
web_url = web_url.replace("\", "");
这应该会将 URL 转换为 http://static.giantbomb.com/uploads/square_avatar/8/87790/1814630-box_ff7.png,从而解决您的问题。