2013-08-29 3 views
1

Я следовать этому руководству для вставки изображений в галерее, используя вид сетки: http://developer.android.com/guide/topics/ui/layout/gridview.htmlвысота ImageView в GridView

Я редактировал код imageadapter следующим образом:

public class ImageAdapter extends BaseAdapter { 
private Context mContext; 

public ImageAdapter(Context c) { 
    mContext = c; 
} 

public int getCount() { 
    return mThumbIds.length; 
} 

public Object getItem(int position) { 
    return null; 
} 

public long getItemId(int position) { 
    return 0; 
} 

@Override 
public View getView(int position, View convertView, ViewGroup parent) { 
    ImageView imageView; 
    if (convertView == null) { // if it's not recycled, initialize some attributes 
     imageView = new ImageView(mContext); 
     imageView.setId(R.id.img_gallery); 

     imageView.setScaleType(ImageView.ScaleType.CENTER_CROP); 
     imageView.setPadding(8, 8, 8, 8); 
    } else { 
     imageView = (ImageView) convertView; 
    } 

    imageView.setImageResource(mThumbIds[position]); 
    return imageView; 
} 

// references to our images 
private int[] mThumbIds = {R.drawable.itinerario1_1, R.drawable.itinerario1_1, R.drawable.itinerario1_1, R.drawable.itinerario1_1, R.drawable.itinerario1_1, R.drawable.itinerario1_1, R.drawable.itinerario1_1, R.drawable.itinerario1_1, R.drawable.itinerario1_1, R.drawable.itinerario1_1}; 

}

и это img_gallery xml

<ImageView xmlns:android="http://schemas.android.com/apk/res/android" 
android:id="@+id/img_gallery" 
android:layout_width="fill_parent" 
android:layout_height="wrap_content" 
android:background="#000000" 
android:adjustViewBounds="true"/> 

и это основной макет:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent" 
android:fillViewport="true" 
android:fadingEdge="none"> 
<GridView 
    android:id="@+id/gridview" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:verticalSpacing="0dp" 
    android:horizontalSpacing="0dp" 
    android:stretchMode="columnWidth" 
    android:numColumns="2" 
    android:gravity="center" 
    android:padding="5dp" 
/> 

проблема заключается в том, что, когда я TUN приложения, ImageView имеет много верхнюю и нижнюю прокладку. Я также пытался установить его в 0 в xml, но он не изменяется.

ответ

1

Вы устанавливаете отступы на runtime-

Удалить это

линии-
imageView.setPadding(8, 8, 8, 8); 
+1

Глупость ошибка .. спасибо! – pindol

1

imageView.setPadding(0, 0, 0, 0); в базовом адаптере.

Файл xml загружается первым, чем адаптер. Это означает, что, если вы установили дополнение в 0 в xml, они все равно будут переопределены из вашего класса адаптера. Попробуйте установить их на 0 или лучше, удалите эту строку полностью. Он должен работать.

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