2013-06-20 20 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

你想重新大小的東西,如果你想列寬重新大小的增加/減少列寬在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" 
/>