Для NetworkImageView существует переменная, определенная как mDefaultImageId
. Вы можете использовать ее для определения ресурса изображения по умолчанию.
Вот как вы можете это сделать-
Создайте файл с именем attrs.xml
, в котором поместите следующие строки:
<declare-styleable name="DefaultImageResId">
<attr name="default_image_resource" format="reference" />
</declare-styleable>
Создайте класс с именем CustomNetworkImageView
и используйте следующий код:
import android.content.Context;
import android.content.res.TypedArray;
import android.util.AttributeSet;
import com.android.volley.toolbox.NetworkImageView;
import com.myapp.R;
public class CustomNetworkImageView extends NetworkImageView {
public CustomNetworkImageView(Context context) {
super(context);
}
public CustomNetworkImageView(Context context, AttributeSet attrs) {
super(context, attrs);
setDefaultImageResId(context, attrs);
}
public CustomNetworkImageView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
setDefaultImageResId(context, attrs);
}
private void setDefaultImageResId(Context context, AttributeSet attrs) {
TypedArray typedArray = context.obtainStyledAttributes(attrs, R.styleable.DefaultImageResId);
int resId = typedArray.getResourceId(R.styleable.DefaultImageResId_default_image_resource, 0);
if (0 != resId)
setDefaultImageResId(resId);
}
}
Теперь в вашем обычном XML-файле макета используйте следующее:
<com.myapp.CustomNetworkImageView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/img"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:default_image_resource="@drawable/defaultimage"/>
Помните, что строка xmlns:app="http://schemas.android.com/apk/res-auto"
очень важна в корневом элементе вашего файла макета. Затем добавьте app:default_image_resource
Вы сделали!!! Теперь вы даже можете упомянуть изображение из вашего xml
person
Jimit Patel
schedule
17.10.2015