1、xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#FFFFFF"
android:descendantFocusability="blocksDescendants"
android:orientation="vertical" >
<!-- android:descendantFocusability="blocksDescendants" -->
<!-- android:focusable="false" -->
<ScrollView
android:id="@+id/scroll"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:fadingEdgeLength="0dp"
android:focusable="false"
android:scrollbars="none" >
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<ImageView
android:id="@+id/image"
android:layout_width="fill_parent"
android:layout_height="150dp"
android:padding="2dp"
android:scaleType="centerCrop"
android:src="@drawable/ic_launcher" />
<com.scrollview.gridview.MyGridView
android:id="@+id/grid"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_marginTop="10dp"
android:fadingEdgeLength="0dp"
android:numColumns="3"
android:scrollbars="none" />
</LinearLayout>
</ScrollView>
</LinearLayout>
2、设置高度
package com.scrollview.gridview;
import android.content.Context;
import android.util.AttributeSet;
import android.widget.GridView;
/***
* 设置高度
*
* @author GuoJian
*
*/
public class MyGridView extends GridView {
public MyGridView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
}
public MyGridView(Context context, AttributeSet attrs) {
super(context, attrs);
}
public MyGridView(Context context) {
super(context);
}
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
int expandSpec = MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE >> 2, MeasureSpec.AT_MOST);
super.onMeasure(widthMeasureSpec, expandSpec);
}
}
3、activity
package com.scrollview.gridview;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;
/***
* activity
*
* @author GuoJian
*
*/
public class MainActivity extends Activity {
private MyGridView grid;
private String[] texts = new String[] { "无线", "通话设置", "声音", "显示", "位置", "应用", "账户", "隐私权", "存储", "语言", "游戏", "娱乐",
"电影", "音乐", "辅助功能", "日期" };
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
init();
}
void init() {
grid = (MyGridView) findViewById(R.id.grid);
grid.setAdapter(new GridAdapter(this));
}
private class GridAdapter extends BaseAdapter {
Activity context;
public GridAdapter(Activity context) {
this.context = context;
}
@Override
public int getCount() {
return texts.length;
}
@Override
public Object getItem(int position) {
return null;
}
@Override
public long getItemId(int position) {
return 0;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder = null;
if (convertView == null) {
convertView = context.getLayoutInflater().inflate(R.layout.grid_view_item, null);
holder = new ViewHolder();
holder.image = (ImageView) convertView.findViewById(R.id.iv_image);
holder.text = (TextView) convertView.findViewById(R.id.grid_text);
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
holder.image.setImageResource(R.drawable.ic_launcher);
holder.text.setText(texts[position]);
return convertView;
}
class ViewHolder {
ImageView image;
TextView text;
}
}
}