我正在向服务器发送请求,服务器会发送设备名称列表。我想根据服务器返回的设备名称加载图像,此时服务器有200种类型的设备名称,每次发送请求时服务器都会返回随机设备名称列表。是否有一种基于响应服务器加载图像的有效方法。 任何帮助表示赞赏。 答复如下:
"器具":
{
"id": 1,
"type": "electronic",
"make": "2015",
"model": "2011",
"serialNumber": "19218hdyew",
"serviceTagNumber": "hfh251663",
"name": "fridge"
},
{
"id": 2,
"type": "electronic",
"make": "2015",
"model": "2011",
"serialNumber": "19218hdyew",
"serviceTagNumber": "hfh251663",
"name": "coffee"
},
{
"id": 3,
"type": "electronic",
"make": "2015",
"model": "2011",
"serialNumber": "19218hdyew",
"serviceTagNumber": "hfh251663",
"name": "washing machine"
},
{
"id": 4,
"type": "electronic",
"make": "2015",
"model": "2011",
"serialNumber": "19218hdyew",
"serviceTagNumber": "hfh251663",
"name": "fan"
},
{
"id": 5,
"type": "electronic",
"make": "2015",
"model": "2011",
"serialNumber": "19218hdyew",
"serviceTagNumber": "hfh251663",
"name": "tv"
}
答案 0 :(得分:1)
您的服务器正在返回图像名称,那么您应该创建一个类似
的方法$result = shell_exec("php -S localhost:8000 &> /dev/null 2>&1");
echo $result; // this does not show anything
其中imagename是您从服务器获取的字符串。
在 displayimage(String imagename)
方法中,您可以使用 setimageresource
答案 1 :(得分:0)
首先从服务器获取响应并解析它。有关详细信息,请参阅volley或Retrofit。
从服务器获得响应后,从中获取imageUrl并执行延迟加载。请参阅Picasso,Fresco,UniversalImageLoader,Glide。
要获取imageUrl,您需要将imageName与实际图像所在的服务器URL连接,或者告诉API开发人员在webservice中提供完整的图像URL。
您可以检查this线程是否有延迟加载
答案 2 :(得分:0)
使用Android Universal Image-Loader这是最好的
声明
private ImageLoader imageLoader1;
创建
imageLoader1 = ImageLoader.getInstance();
imageLoader1.init(ImageLoaderConfiguration.createDefault(getActivity()));
no_image这里是一个可在Cache中没有任何图像加载的可绘制图像
DisplayImageOptions
options = new DisplayImageOptions.Builder()
.cacheInMemory(true)
.cacheOnDisk(true)
.showImageOnLoading(R.drawable.no_image) // resource or drawable
.showImageForEmptyUri(R.drawable.no_image) // resource or drawable
.showImageOnFail(R.drawable.no_image)
.considerExifParams(true)
.bitmapConfig(Bitmap.Config.RGB_565)
.build();
imageLoader1.displayImage(yourpath.replace(" ", "%20"), ivprofile, options);
还使用它的依赖
with jar
compile files('libs/universal-image-loader-1.9.5.jar')
和
compile 'com.nostra13.universalimageloader:universal-image-loader:1.9.1'
您也可以使用Piccaso并同时滑行
答案 3 :(得分:0)
您需要根据服务器响应显示drawable中的图像。如果您可以选择将图像保存在资源文件夹中,
然后这是解决方案,
然后尝试以下代码。
AssetManager assetManager = context.getAssets();
InputStream inputStream = null;
try {
inputStream = assetManager.open(imageName + ".extension");
}
catch (IOException e) {
e.printStackTrace();
}
if (inputStream != null) {
Bitmap bitmap = BitmapFactory.decodeStream(istr);
imageView.setImageBitmap(bitmap);
}