2013-06-20 7 views
0

Я хочу спросить, как изменить размер сетки до большего размера в соответствии с моими потребностями.Android: Grid View

вот мой XML-файл:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:tools="http://schemas.android.com/tools" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:paddingLeft="@dimen/activity_horizontal_margin" 
android:paddingRight="@dimen/activity_horizontal_margin" 
android:paddingTop="@dimen/activity_vertical_margin" 
android:paddingBottom="@dimen/activity_vertical_margin" 
tools:context=".MainActivity"> 

<GridView 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:id="@+id/grid_view" 
     android:columnWidth="150dp" 
     android:numColumns="auto_fit" 
     android:verticalSpacing="10dp" 
     android:horizontalSpacing="2dp" 
     android:stretchMode="columnWidth" 
     android:padding="20dp" 
     android:gravity="center" /> 


</RelativeLayout> 

вот мой файл макета:

package com.example.steve_jobs; 

import android.os.Bundle; 
import android.app.Activity; 
import android.view.Menu; 
import android.view.View; 
import android.widget.AdapterView; 
import android.widget.GridView; 
import android.widget.Toast; 

public class MainActivity extends Activity { 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    GridView gridview = (GridView) findViewById(R.id.grid_view); 
    gridview.setAdapter(new ImageAdapter(this)); 

    gridview.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
     @Override 
     public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) { 


     } 
    }); 


} 


@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    // Inflate the menu; this adds items to the action bar if it is present. 
    getMenuInflater().inflate(R.menu.main, menu); 
    return true; 


} 

} 

класс адаптера изображения:

package com.example.steve_jobs; 

import android.content.Context; 
import android.view.View; 
import android.widget.BaseAdapter; 
import android.widget.GridView; 
import android.widget.ImageView; 
import android.view.ViewGroup; 

/** * Создано Яш на 19/6/13. */ класс ImageAdapter общественности расширяет 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; 
} 

// create a new ImageView for each item referenced by the Adapter 

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.setLayoutParams(new GridView.LayoutParams(85, 85)); 
     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 Integer[] mThumbIds = { 
     R.drawable.sj_1, 
     R.drawable.sj_2, 
     R.drawable.sj_3, 
     R.drawable.sj_4, 
     R.drawable.sj_5, 
     R.drawable.sj_6, 
     R.drawable.sj_7, 
     R.drawable.nexus 
}; 


} 
+0

, что вы хотите повторно размер, если вы хотите к размеру столбца re size увеличение/уменьшение ширины столбца в dp –

ответ

0

Вы можете удалить или уменьшить все, что отступы!

редактировать:

попробовать

android:stretchColumns="0,1,2" 

0, 1 и 2 представляют собой индексы столбцов;

так что если у вас есть 6 колонок вы бы использовать «0,1,2,3,4,5»

+0

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

+0

ответ отредактирован, попробуйте использовать stretchColumns – Oleksiy

0

вы должны использовать этот

<GridView 
    android:id="@+id/myGrid" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:padding="10dp" 
    android:verticalSpacing="10dp" 
    android:horizontalSpacing="10dp" 
    android:numColumns="auto_fit" 
    android:columnWidth="60dp" 
    android:stretchMode="columnWidth"  
    android:gravity="center" 
/>