在getView中指定子宽度时使用gridview宽度

时间:2013-06-06 06:57:50

标签: android gridview

我正在为我的网格视图使用自定义适配器,它只返回宽度为其父级大小的1/3的图像视图,应用程序正在渲染除位置0之外的所有视图我认为它因为父级宽度和高度为0在渲染第一个视图时,如何获得第一个视图的父宽度,即位置0的视图

这是我的getView()方法:

public View getView(int position, View convertView, ViewGroup parent) {
    super.getView(position, convertView, parent);
    ImageView imageView;
    if (convertView == null) {
        imageView = new ImageView(getContext());
        imageView.setLayoutParams(new GridView.LayoutParams((int) (parent
                .getMeasuredWidth() / 3f),
                (int) (parent.getMeasuredWidth() / 3f)));
        imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
        imageView.setPadding(8, 8, 8, 8);
    } else {
        imageView = (ImageView) convertView;
    }

    System.out.println(ids[position].intValue());
    int sdk = android.os.Build.VERSION.SDK_INT;

    if (sdk < android.os.Build.VERSION_CODES.JELLY_BEAN) {
        imageView.setBackgroundDrawable(getContext().getResources()
                .getDrawable(R.drawable.shadow_white));
    } else {
        imageView.setBackground(getContext().getResources().getDrawable(
                R.drawable.shadow_white));
    }

    imageView.setImageResource(ids[position].intValue());
    System.out.println("getView" + imageView);
    return imageView;
}

这是我在xml中的网格视图声明

    <GridView
        android:id="@+id/category_grid"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_margin="5dp"
        android:background="@color/white"
        android:numColumns="3"
        android:stretchMode="columnWidth" >
    </GridView>

0 个答案:

没有答案