我正在创建一个Android应用,其中我有包含阿拉伯字符的图片网址。
以下是我正在使用的代码......
Log.e(TAG, "Video Image -- > " + Uri.encode(data.get(position).getPhoto().toString()));
Picasso.with(act).load(Uri.encode(data.get(position).getPhoto().toString()))
.resize(pW, pH)
.centerCrop()
.skipMemoryCache()
.error(R.drawable.img_table_view)
.placeholder(R.drawable.img_table_view)
.into(viewHolder.image);
示例网址如下所示。
http://www.ssss.com/Karikatir/سبسي3ILAWESVVSKNVMWYLLTFWRASZ.jpg
Log的输出如下。
10-19 10:00:08.038 25617-25617/com.sss.app E/VideosAdapter﹕ Video Image -- > http%3A%2F%2Fwww.ssss.com%2FKarikatir%2F3ILAWESVVSKNVMWYLLTFWRASZ.jpg
知道为什么即使在编码网址后图片也不显示?
答案 0 :(得分:1)
以下是我的所作所为......
String imageName = "http://www.sss.com/test.png";
imageName = imageName.replaceAll("http://www.sss.com/", "");
String encodedURL = "http://www.sss.com/" + Uri.encode(imageName);
Picasso.with(act).load(encodedURL)
.resize(pW, pH)
.centerCrop()
.skipMemoryCache()
.error(R.drawable.img_table_view)
.placeholder(R.drawable.img_table_view)
.into(viewHolder.image);
所以编码的网址如下所示。
String encodedURL = "http://www.sss.com/" + Uri.encode(imageName);
注意: 如果网址中有空格,您需要更新以下代码。
String encodedURL = "http://www.sss.com/" + Uri.encode(imageName).replaceAll(" ", "%20");
在编码之前不要用%20替换空格,因为它将编码%20,这将转到不正确的网址。因此,用%20替换空格将在编码之后。
发布答案,以便帮助某人,因为我在网上找不到解决方案......