gpt4 book ai didi

java - 无法为 GridView 布局设置背景颜色

转载 作者:行者123 更新时间:2023-11-30 01:48:32 24 4
gpt4 key购买 nike

我从未在 Android 上使用过 GridView。我尝试在 GridView 中扩展我的布局,并且我希望每个布局都有不同的背景。我无法为每个布局单独设置背景颜色,每次我为所有布局设置灰色。

我的 XML 代码:

<RelativeLayout
android:layout_width="200dp"
android:layout_height="150dp"
android:id="@+id/back">


<ImageView
android:layout_width="100dp"
android:layout_height="100dp"
android:id="@+id/imageView"
android:layout_marginTop="10dp"
android:src="@drawable/splashscreen"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true" />

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Science"
android:textSize="15sp"
android:layout_marginTop="10dp"
android:id="@+id/categoryTextView"
android:layout_below="@+id/imageView"
android:layout_centerHorizontal="true" />

</RelativeLayout>

网格适配器:

public class CellAdapter extends BaseAdapter {
private Context context;
private LinkedList<CellGrid> list;

public CellAdapter(Context context, LinkedList<CellGrid> list){
this.context = context;
this.list = list;
}


@Override
public int getCount() {
return list.size();
}

@Override
public Object getItem(int position) {
return list.get(position);
}

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

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

if (convertView == null) {
LayoutInflater inflater = (LayoutInflater) context
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertView = (View) inflater.inflate(
R.layout.grid_cell_layout, null);
}

convertView.setBackgroundColor(list.get(position).getBackground());
TextView categoryTextView = (TextView)convertView.findViewById(R.id.categoryTextView);
ImageView imageView = (ImageView)convertView.findViewById(R.id.imageView);
categoryTextView.setText(list.get(position).getText());
imageView.setImageResource(list.get(position).getImageId());
RelativeLayout relativeLayout = (RelativeLayout) convertView.findViewById(R.id.back);
Log.d("COLOR", Integer.toString(list.get(position).getBackground()));
return convertView;
}

最佳答案

如果不满足任何特定颜色,则可以将随机背景设置为每个 View :

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

// generate the random integers for r, g and b value
int r = rand.nextInt(255);
int g = rand.nextInt(255);
int b = rand.nextInt(255);

int randomColor = Color.rgb(r,g,b);

if (convertView == null) {
LayoutInflater inflater = (LayoutInflater) context
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertView = (View) inflater.inflate(
R.layout.grid_cell_layout, null);

convertView.setBackgroundColor(randomColor);
}

关于java - 无法为 GridView 布局设置背景颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33367458/

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