android gridview 3列,android – 跨越两列gridview三个

我希望有人可以帮助我,我有一个网格布局,由8个项目的适配器填充.网格中有三列,这留下了两行,其中三列为完整列,另一行为两列,末尾为空白.我附上图片来详细说明我想要实现的目标.我希望能够拉伸最后一行行列以填充gridview的宽度.这是由适配器填充.

下面是应用程序的现状,我有8个单元格的内容,没有第九个单元格,以防与我的图像混淆.

这是我希望它的样子.

所以我想将两个单元拉伸到三列.

以下是我到目前为止实施的代码

public class channels_fragment extends Fragment {

private View view;

private GridView channelsGridView;

protected Handler handler;

//protected GridAdapter gridAdapter;

private Main_Activity main;

private final ChannelsModel model = new ChannelsModel();

static final String[] channelTitles = new String[]{"test1", "test2", "test3", "test4", "test5", "test6", "test7", "test8"};

public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {

main = (Main_Activity) this.getActivity();

view = inflater.inflate(R.layout.channels_fragment_layout, null);

channelsGridView = (GridView)view.findViewById(R.id.channelsGrid);

channelsGridView.setAdapter(new ImageAdapter(this.getActivity(), channelTitles));

channelsGridView.setOnItemClickListener(new AdapterView.OnItemClickListener() {

@Override

public void onItemClick(AdapterView> parent, View view, int position, long id) {

}

});

return view;

}

public static int convertDpToPixels(float dp, Context context){

Resources resources = context.getResources();

return (int) TypedValue.applyDimension(

TypedValue.COMPLEX_UNIT_DIP,

dp,

resources.getDisplayMetrics()

);

}

class ImageAdapter extends BaseAdapter{

private Context context;

private final String[] channelTitles;

public ImageAdapter(Context context, String[] channelTitles){

this.context = context;

this.channelTitles = channelTitles;

}

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

LayoutInflater inflater = (LayoutInflater) context

.getSystemService(Context.LAYOUT_INFLATER_SERVICE);

View gridView;

if (convertView == null) {

gridView = new View(context);

// get layout from mobile.xml

gridView = inflater.inflate(R.layout.grid_item_layout, null);

// set value into textview

TextView textView = (TextView) gridView

.findViewById(R.id.grid_item_text);

textView.setText(channelTitles[position]);

// set image based on selected text

ImageView imageView = (ImageView) gridView

.findViewById(R.id.grid_item_image);

ImageView iv = (ImageView) gridView.findViewById(R.id.ver_border_dark);

String channelTitle = channelTitles[position];

if (position == 6 ){

gridView.setBackgroundResource(R.drawable.background_bottom_dark);

textView.setTextColor(Color.WHITE);

}

if (position ==7)

{

gridView.setBackgroundResource(R.drawable.background_bottom_dark);

textView.setTextColor(Color.WHITE);

iv.setVisibility(View.VISIBLE);

iv.setImageResource(R.drawable.grid_line_ondark_vert);

}

if (channelTitle.equals("test1")) {

imageView.setImageResource(R.drawable.icon_events);

} else if (channelTitle.equals("test2?")) {

imageView.setImageResource(R.drawable.icon_whats_nearby);

} else if (channelTitle.equals("test3")) {

imageView.setImageResource(R.drawable.icon_top_tips);

} else if (channelTitle.equals("test4")) {

imageView.setImageResource(R.drawable.icon_plan_my_trip);

} else if (channelTitle.equals("test5")) {

imageView.setImageResource(R.drawable.icon_special_offers);

} else if (channelTitle.equals("test6")) {

imageView.setImageResource(R.drawable.icon_explore_more);

} else if (channelTitle.equals("test7")) {

imageView.setImageResource(R.drawable.icon_city_plus);

} else if (channelTitle.equals("test8")) {

imageView.setImageResource(R.drawable.icon_audio_guides);

}

} else {

gridView = (View) convertView;

}

return gridView;

}

@Override

public int getCount() {

return channelTitles.length;

}

@Override

public Object getItem(int position) {

return null;

}

@Override

public long getItemId(int position) {

return 0;

}

}

这是我的片段布局的代码,包括gridview

android:layout_width="match_parent"

android:layout_height="match_parent">

android:id = "@+id/dub_photo"

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:background="@drawable/photo"/>

android:id="@+id/channelsGrid"

android:background="@drawable/light_background"

android:layout_width="fill_parent"

android:layout_height="fill_parent"

android:columnWidth="100dp"

android:numColumns="auto_fit"

android:gravity="center"

android:stretchMode="columnWidth"

android:layout_below="@+id/dub_photo">

最后是我的网格项的布局

android:layout_width="match_parent"

android:layout_height="match_parent">

android:id="@+id/gridItem"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_centerHorizontal="true"

android:padding="10dp">

android:id ="@+id/grid_item_image"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_centerHorizontal="true" />

android:textColor="#000000"

android:id = "@+id/grid_item_text"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:textSize="12dp"

android:layout_centerHorizontal="true"

android:layout_below="@+id/grid_item_image"

android:layout_marginTop="10dp" />

android:id="@+id/horizontal_border"

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:layout_below="@+id/gridItem">

android:id = "@+id/hor_border"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:background="@drawable/grid_line_horizontal"/>

android:layout_width="wrap_content"

android:layout_alignStart="@id/horizontal_border"

android:layout_height="wrap_content"

android:layout_above="@+id/horizontal_border">

android:id = "@+id/ver_border"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:background="@drawable/grid_line_vertical"/>

android:id = "@+id/ver_border_dark"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:background="@drawable/grid_line_ondark_vert"

android:visibility="gone"/>

如果有人能帮助我,我会非常感激.我已经研究了论坛,我遇到了使用gridlayout的建议,api 14及以上版本支持,但我正在开发api 9及以上版本.

谢谢!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Go语言(也称为Golang)是由Google开发的一种静态强类型、编译型的编程语言。它旨在成为一门简单、高效、安全和并发的编程语言,特别适用于构建高性能的服务器和分布式系统。以下是Go语言的一些主要特点和优势: 简洁性:Go语言的语法简单直观,易于学习和使用。它避免了复杂的语法特性,如继承、重载等,转而采用组合和接口来实现代码的复用和扩展。 高性能:Go语言具有出色的性能,可以媲美C和C++。它使用静态类型系统和编译型语言的优势,能够生成高效的机器码。 并发性:Go语言内置了对并发的支持,通过轻量级的goroutine和channel机制,可以轻松实现并发编程。这使得Go语言在构建高性能的服务器和分布式系统时具有天然的优势。 安全性:Go语言具有强大的类型系统和内存管理机制,能够减少运行时错误和内存泄漏等问题。它还支持编译时检查,可以在编译阶段就发现潜在的问题。 标准库:Go语言的标准库非常丰富,包含了大量的实用功能和工具,如网络编程、文件操作、加密解密等。这使得开发者可以更加专注于业务逻辑的实现,而无需花费太多时间在底层功能的实现上。 跨平台:Go语言支持多种操作系统和平台,包括Windows、Linux、macOS等。它使用统一的构建系统(如Go Modules),可以轻松地跨平台编译和运行代码。 开源和社区支持:Go语言是开源的,具有庞大的社区支持和丰富的资源。开发者可以通过社区获取帮助、分享经验和学习资料。 总之,Go语言是一种简单、高效、安全、并发的编程语言,特别适用于构建高性能的服务器和分布式系统。如果你正在寻找一种易于学习和使用的编程语言,并且需要处理大量的并发请求和数据,那么Go语言可能是一个不错的选择。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值