2015-10-30 3 views
0

Я использую пользовательский Gridview, который выглядит как полка. Я показываю 3 колонки Когда Eсть 5 пунктов от сервера, шестое положение Gridview пустКак показать изображения по умолчанию, когда нет элемента в Gridview?

Я хотел показать изображение стойки линии в ней

Grid_item.xml

<?xml version="1.0" encoding="utf-8"?> 
<com.andexert.library.RippleView xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    android:id="@+id/ripple_grid" 
    android:layout_width="match_parent" 
    android:layout_height="90dp" 
    android:background="@drawable/im_ninja_delights_rack" 
    android:paddingBottom="20dp" 
    app:rv_centered="true" 
    app:rv_framerate="5" 
    app:rv_rippleDuration="50"> 
    <ImageView 
     android:id="@+id/image_ninja_delights" 
     android:layout_width="75dp" 
     android:layout_height="75dp" 
     android:layout_alignParentTop="true" 
     android:layout_centerHorizontal="true" 
     android:scaleType="fitXY" 
     android:src="@drawable/chocolates_image" 
     android:layout_marginTop="15dp" 
     android:visibility="visible"></ImageView> 
</com.andexert.library.RippleView> 

enter image description here

im_ninja_delights_rack.png

enter image description here

+1

Почему вы не используете библиотеку Piccaso для установки места для вашего изображения? –

+0

У вас есть только пять элементов в сетке. Вам нужно заполнить несколько из них, чтобы элемент останова можно было создать в виде сетки с изображением по умолчанию. –

+0

Проверьте размер вашего арраиста - я думаю, список из 5 предметов. Итак, последний не заполняется. Если вы получаете размер 6 арраистов, то проверяете URL-адрес изображения.В библиотеке Piccaso onError listener метод обрабатывается в вашем коде. В OnErrorListener задано ваше изображение по умолчанию – Sanket990

ответ

1

Использование piccaso библиотека установить заполнитель для ImageView

как этот

Picasso.with(this) 
.load("IMAGE URL") 
.placeholder(R.drawable.default_image) // optional 
.error(R.drawable.error_image)   // optional 
.into(imageView); 
+0

Мне нужно что-либо делать с Gridview android: stretchMode = "columnWidth"? –

+0

место держатель не работает в моем случае .. потому что изображение в стойке является фоном корневой компоновки. Я хочу, чтобы это фоновое изображение было видно еще, когда ни один элемент в столбце –

0

Если вы пытаетесь показать 3 изображения на строку, убедитесь, что ваше изображение список кратно 3.

затем установите изображение по умолчанию для изображения которые вы используете в завышенном xml.

сделать что-то похожее на это,

в вашей деятельности, вызова адаптера конструктора как,

gridView.setAdapter(new BaseAdapterClass(context, actual_data_list, actual_data_list.size() + number_to_make_size_multiple_of_3)); 

затем, в классе адаптера,

public int getCount(){ 
     return multiple_of_3_passed_from_activity; 
    } 

    public View getView(int position, View convertView, ViewGroup parent) { 
     if(position < actual_data_list.size()) { 
      // Set your image to imageview 
     } 

     return convertView; 
    } 
+0

не является основой корневого макета grid_item.xml. Я хотел, чтобы стойка была растянута. –

+0

вы пробовали код? –

+0

Он будет растягивать стойку, так, как вам нужно. –

-1

1

ли Вы имеете в виду, что?

Мое решение здесь добавляет некоторые поддельные элементы, чтобы заполнить строку стойкой и отключить onClick для них.

+0

да ... сэр .. :) –

1

я работал на том же состоянии использовать этот

класс адаптера

1.

public int getCount() 
{ 

    return mItems.size()+1; 
} 

2.

public View getView(int position, View convertView, ViewGroup parent) 
     { 

      LayoutInflater inflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
      View gridView = inflater.inflate(R.layout.test_grid_layout, null); 
      ImageView imageView = (ImageView) gridView.findViewById(R.id.grid_item_image); 
      if(position == mItems.size()) 
      { 
       imageView.setImageResource(R.drawable.blank_img); 
      } 
      else 
       { 
       imageView.setImageURI(Uri.parse(mItems.get(position))); 
      } 
      return gridView; 
     } 

enter image description here

ла st one is blank images

Смежные вопросы