卸下微胖在android的一个GridViewandroid、GridView

由网友(他们看上去整天都很开心,嘻嘻哈哈的,没有烦恼,)分享简介:我想删除出现在网格视图中的微胖。我有尺寸128×128,这将在网格被占用细胞的图像。但不知何故存在着被添加到网格的内容的额外的空间。 I want to remove the extra padding that appears in a grid view. I have images of the size 12...

我想删除出现在网格视图中的微胖。我有尺寸128×128,这将在网格被占用细胞的图像。但不知何故存在着被添加到网格的内容的额外的空间。

I want to remove the extra padding that appears in a grid view. I have images of the size 128*128 which will be occupying cells in the grid. But somehow there is an extra space that gets added to the contents of the grid.

经过一番研究,我能确定我有覆盖网格视图的listSelector财产。现在,这里是我的问题 - 我知道我必须在这里指定像一个XML绘制,但是以指定的?我试图用一个形状绘制与填充和中风设置为0dp无济于事。

After some research, I was able to determine that I have to override the listSelector property of the grid view. Now here's my question - I know I have to specify something like an xml drawable here, but what to specify in that?? I tried using a shape drawable with padding and stroke set to 0dp to no avail.

在此提出问题和回答here,但他们并没有给出什么可绘制必须包含。

The question is asked and answered here, but they haven't given what the drawable must contain.

可以有一个人帮助我。谢谢!

Can some one help me with this. Thanks!

编辑:好的 - 我有UI的这里 山副本。而对于同样的XML布局如下:

Ok - here's a copy of the UI that I have. And the XML layout for the same is as follows:

<GridView android:id="@+id/GV_A2ZMenu" android:layout_width="fill_parent"
    android:layout_height="wrap_content" android:numColumns="4"
            android:layout_gravity="top" android:stretchMode="columnWidth"
    android:gravity="center" android:listSelector="@null" />

和我使用的是BaseAdapter类来填充GridView控件。下面是它的code:

And I am using a BaseAdapter class to populate the gridView. Here's its code:

public class AtoZMenu extends BaseAdapter {

private static Context AppC;

private Integer[] MenuImg = { R.drawable.alphabet_a, R.drawable.alphabet_b,
        R.drawable.alphabet_c, R.drawable.alphabet_d,
        R.drawable.alphabet_e, R.drawable.alphabet_f,
        R.drawable.alphabet_g, R.drawable.alphabet_h,
        R.drawable.alphabet_i, R.drawable.alphabet_j,
        R.drawable.alphabet_k, R.drawable.alphabet_l,
        R.drawable.alphabet_m, R.drawable.alphabet_n,
        R.drawable.alphabet_o, R.drawable.alphabet_p,
        R.drawable.alphabet_q, R.drawable.alphabet_r,
        R.drawable.alphabet_s, R.drawable.alphabet_t,
        R.drawable.alphabet_u, R.drawable.alphabet_v,
        R.drawable.alphabet_w, R.drawable.alphabet_x,
        R.drawable.alphabet_y, R.drawable.alphabet_z };

public AtoZMenu(Context C) {
    AppC = C;
}

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

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

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

public View getView(int position, View convertView, ViewGroup parent) {
    ImageView IV;
    float density = AppC.getResources().getDisplayMetrics().density;

    if (convertView == null) {
        IV = new ImageView(AppC);
        IV.setMaxHeight((int) (1));
    } else {
        IV = (ImageView) convertView;
    }
    IV.setImageResource(MenuImg[position]);
    return IV;
}
 }

可以看出错误了?

注意:最后,我结束了在这使得更好的网格表布局实现类似的屏幕

Note: In the end I ended up implementing a similar screen in a table layout which renders much better grids.

推荐答案

是的,我有同样的问题。你想设置listSelector为@null:

Yep, I've had the same problem. You want to set the listSelector to @null:

<!-- Setting the listSelector to null removes the 5px border -->
<GridView
    android:id="@+id/view"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:listSelector="@null" />

另外,请尝试以下操作:

Also, try the following:

myGridView.setStretchMode(GridView.STRETCH_COLUMN_WIDTH);

我看你可以在XML做到这一点,但我没有,当我有这个同样的问题;不知道为什么。

I see you can do this in the XML, but I didn't when I had this same problem; not sure why.

我也硬codeD按键高度:

I also hard-coded the key height:

float density = getContext().getResources().getDisplayMetrics().density;
mKeyHeight = (int) (56 * density);
....
@Override
public View getView(int position, View convertView, ViewGroup parent) {
    ImageButton b = (ImageButton) convertView;
    if (b == null) {
        b = new ImageButton(getContext());
        b.setMinimumHeight(mKeyHeight);
        b.setBackgroundResource(R.drawable.btn_keyboard_key);
        b.setOnClickListener(this);
    }
}

抱歉没有给一个precise答案,所以让我知道,如果你之后还需要帮助。

Sorry about not giving a precise answer, so let me know if you still need help after that.

阅读全文

相关推荐

最新文章