gpt4 book ai didi

java - 更改 GridView 中单元格的大小?

转载 作者:行者123 更新时间:2023-11-29 03:34:30 26 4
gpt4 key购买 nike

我在 Android 中有一个 gridview,它由一个继承自 imagebuttons 的自定义 View 填充。

我想做的是修改 gridview 内图像按钮的大小以及它们在单元格之间的填充。

这是我的 getView() 代码。我试过使用布局但不能,因为我无权访问父 View 。

public View getView(int position, View convertView, ViewGroup parent) {

LayoutInflater inflater = (LayoutInflater) context
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);

if (image == null)
image = BitmapFactory.decodeResource(context.getResources(), R.drawable.dollar);

ExpenseIcon ic = new ExpenseIcon(context);
ic.setImageBitmap(image);

return ic;
}

我该怎么做?

最佳答案

您可以使用 setColumnWidth(int) 设置或通过调用 setNumColumns(int) 设置列数取决于你究竟在尝试什么。顺便说一下,您还可以通过 xml(android:columnWidthandroid:numColumns)设置这些值。

对于间距,您可以使用 android:horizontalSpacingsetHorizontalSpacing(int)android:verticalSpacingsetVerticalSpacing(int) .

要控制高度,您需要更改 getView 函数:

public YourConstructor() {
// inflater should be a private member variable
inflater = (LayoutInflater)context
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
// other code...
}

public View getView(int position, View convertView, ViewGroup parent) {
if(convertView == null) {
// create new one and put it into convertView. e.g.:
convertView = new ExpenseIcon(context);
AbsListView.LayoutParams lp = new AbsListView.LayoutParams(HEIGHT,WIDTH);
convertView.setLayoutParams(lp);
}

// set the image to the currient convertView. e.g.:
((ExpenseIcon)convertView).setImageBitmap(image);

return convertView;
}

关于java - 更改 GridView 中单元格的大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16251569/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com