如果Android中的服务器上没有图像,则显示默认图像

时间:2016-09-05 12:47:07

标签: java android json image android-volley

我正在通过学​​习一些教程来学习Android。我目前正在研究androidhive的this教程。本教程的目标是显示电影列表并显示年份,流派,图像......所以现在我有一个问题,当服务器上没有图像时会发生什么。

movie.setThumbnailUrl(obj.getString("image"));

XML:

<com.android.volley.toolbox.NetworkImageView
    android:id="@+id/thumbnail"
    android:layout_width="80dp"
    android:layout_height="80dp"
    android:layout_alignParentLeft="true"
    android:layout_marginRight="8dp" />

如果服务器上不存在图像,我将如何显示默认图像(例如来自drawable)?

2 个答案:

答案 0 :(得分:2)

只需在xml中为networkImageView添加默认背景:

<com.android.volley.toolbox.NetworkImageView
    android:id="@+id/thumbnail"
    android:background:"@drawable/default_image"
    ... />

并检查字符串是否为null或空

if (obj.getString("image") != null && !obj.getString("image").isEmpty()) {
     movie.setThumbnailUrl(obj.getString("image"));
}

如果你想以编程方式设置它,只需使用else:

else {
   movie.setDefaultImageResId(R.drawable.default);
   movie.setErrorImageResId(R.drawable.error);
}

答案 1 :(得分:2)

从服务器加载图像的最佳方法是使用Picasso

picasso

适用于Android的图像加载和缓存库专注于平滑滚动 只需要一行即可完成你想要的任务。

label.numberOfLines = 0