Android中的GridView中的Item之间空白太大

图片说明
adapter中的getView方法如下
public View getView(int position, View convertView, ViewGroup parent) {
ImageView imageView=new ImageView(context);
imageView.setImageBitmap(list.get(position).getBitmap());
imageView.setLayoutParams(new AbsListView.LayoutParams(
(int) (parent.getWidth() / DataUtils.num),//DataUtils.num=3
(int) (parent.getHeight() / DataUtils.num)));
return imageView;

}
    由于出现显示的问题  还没进行该方法的优化,
    XML中GridView的布局文件
       <GridView
    android:id="@+id/gv_paly"
    android:layout_below="@id/ll_top"
    android:layout_above="@id/ll_bottom"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    ></GridView>
            请问怎么能减少tem之间垂直的空白,就和水平的一样紧凑。谢谢各位

3个回答

ITFRookie
二十四岁的ZC 虽然不是我要的内容 ,还是谢谢
4 年多之前 回复

可能是Item有留白吧,你查查item是不是有layout_marginTop和layout_marginBottom

dongfeng9ge
东风玖哥 回复Android _ZC: 嗯
4 年多之前 回复
ITFRookie
二十四岁的ZC 回复东风玖哥: ImageView的margin吗?
4 年多之前 回复
ITFRookie
二十四岁的ZC 回复东风玖哥: ImageView的margin吗?
4 年多之前 回复

item布局的代码看看 imageview 的 scaletype(忘了是不是这么写的) 设置为 centercrop 就好了 根布局 不要使用padding 和 magin

ITFRookie
二十四岁的ZC 我试试 谢谢
大约 4 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
Python+OpenCV计算机视觉

Python+OpenCV计算机视觉

Android中gridview中item点击事件及选中标记

求大神帮忙,gridview中的item我加载了一个CheckBox,我在适配器中设置了CheckBox的点击事件,gridview的item 点击事件就不能得到触发,现在我想实现的是点击某一个item,对这个item进行标记,再次点击就消除标记!就像QQ上的选中图片,然后进行预览和发送一样的效果,求大神解答 ![图片说明](https://img-ask.csdn.net/upload/201501/22/1421916214_319768.png)

如何让android中gridview的item大小不一样

类似电视盒子的分类那样,每个item 的大小不一样,可能不实用gridview控件,那用的是什么控件?

Android获取GridView里的item内容时获取的内容不是点击的。

![图片说明](https://img-ask.csdn.net/upload/201506/13/1434177121_635930.jpg) 如图,快餐,烧烤这些白色btn是gridview里的item。这个页面生成了多个gridview,我想在点击其中一个btn时候获取btn的text作为参数传递。使用 ``` gridView=new MyGridView(FenleiActivity.this); gridView.setVerticalSpacing(10); gridView.setHorizontalSpacing(15); gridView.setNumColumns(3); hashlist=new ArrayList<HashMap<String,Object>>(); for(int j=0 ;j<Two_classify_list.size();j++){ HashMap<String, Object> map= new HashMap<String, Object>(); map.put("fenlei_btnlist_btn_text", Two_classify_list.get(j)); hashlist.add(map); } sAdapter=new SimpleAdapter(this,hashlist, R.layout.fenlei_btnlist_item, new String[]{"fenlei_btnlist_btn_text"},new int[]{R.id.fenlei_btnlist_btn_text}); gridView.setAdapter(sAdapter); gridView.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) { HashMap<String,String> map=(HashMap<String,String>)gridView.getItemAtPosition(arg2); String btnText=map.get("fenlei_btnlist_btn_text"); System.out.println("------------------------!!!!!!-------------------"+btnText); Bundle bundle=new Bundle(); bundle.putString("oneClassify", text); bundle.putString("twoClassify", btnText); Intent intent=new Intent(FenleiActivity.this,GoodsShowActivity.class); intent.putExtras(bundle); startActivity(intent); } }); ``` 因为不同的gridview中btn的数量是不同的,不知道为什么有时候点的比较靠后的btn时候就提示数组下标越界,还有就是不管我点哪个gridview,只要点的是第几个btn提示的内容是相同的,这意思就是说他不会动态获取点的那个gridview呗,为什么呢

android 在activity中怎么获取gridview的item的view

在gridview中,可以用OnItemClickListener的 @Override public void onItemClick(AdapterView<?> arg0, View arg1, int position, long arg3) { RelativeLayout mLayout = (RelativeLayout) arg1;} 方法获取mlayout。就是gridview的item的view.如果不是在onItemClick中怎样可以获取view.网上说可以用gridView.getChildAt(),这里的参数写什么可以获取。。或者通过adapter.getView可以获取,该传入什么参数。 谢谢回答。

android 中自定义GridView的使用

楼主最近在学习安卓,用和ListView类似的方法实现Gridview的时候出现了问题。希望高手能指点一二。 aty_using_gridview.xml ``` <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"> <GridView android:layout_width="match_parent" android:layout_height="match_parent" android:id="@+id/gridView" android:numColumns="3"/> </LinearLayout> ``` grid_view_cell.xml ``` <?xml version="1.0" encoding="utf-8"?> <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="100dp" android:layout_height="100dp"> <ImageView android:layout_width="100dp" android:layout_height="100dp" android:id="@+id/img_grid_view" /> </FrameLayout> ``` 这个是Activity ``` public class AtyUsingGridView extends Activity { private GridView gridView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.aty_using_gridview); ImageGridViewAdapter adapter=new ImageGridViewAdapter(this); gridView.findViewById(R.id.gridView); gridView.setAdapter(adapter); } } ``` 这个是adapter ``` public class ImageGridViewAdapter extends BaseAdapter { private Context context=null; private ImageGridViewData data[]= { new ImageGridViewData( R.drawable.img2), new ImageGridViewData(R.drawable.img2), new ImageGridViewData( R.drawable.img2), }; public ImageGridViewAdapter(Context context){ this.context=context; } public Context getContext() { return context; } @Override public int getCount() { return data.length; } @Override public ImageGridViewData getItem(int i) { return data[i]; } @Override public long getItemId(int i) { return i; } @Override public View getView(int i, View view, ViewGroup viewGroup) { FrameLayout fl=null; if(view!=null){ fl=( FrameLayout)view; }else{ fl= ( FrameLayout) LayoutInflater.from(getContext()).inflate(R.layout.grid_view_cell,null); } ImageGridViewData data=getItem(i); ImageView imgID=(ImageView)fl.findViewById(R.id.img_grid_view); imgID.setImageResource(data.imgID); return fl; } } ``` 运行出现错误如下 Unable to start activity java.lang.NullPointerException 我这有什么错误,希望高手给指出啊,万分感谢。

如下GridView Item之间的间隔线是怎么设置的?

这是百度安全卫士的一个功能模块图,求横竖线是怎么设置的?![图片](https://img-ask.csdn.net/upload/201608/21/1471770700_137090.jpg)

android studio gridview如何实现

我实现的老是黑屏退出 mainactivity.java ``` private LayoutInflater inflater; public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); inflater = LayoutInflater.from(getApplicationContext()); GridView dev_listview =(GridView)findViewById(R.id.dev_listview); MyAdapter gAdapter = new MyAdapter (this); dev_listview.setAdapter(gAdapter); setContentView(R.id.dev_listview); } ``` MyAdapter.java ``` public class MyAdapter extends BaseAdapter { private LayoutInflater inflater; private Context mcontext; private Integer[] mThumbnails = {R.drawable.unpress9}; public MyAdapter( Context c) { mcontext = c; } public int getCount() { return mThumbnails.length; } public Object getItem(int position) { return null; } public long getItemId(int position) { return 0; } @SuppressLint("InflateParams") public View getView(int position, View grid, ViewGroup parent) { inflater = (LayoutInflater)mcontext.getSystemService(Context.LAYOUT_INFLATER_SERVICE); if(grid != null) { inflater = LayoutInflater.from(mcontext); grid =inflater.inflate(R.layout.item_9,parent); } return grid; } } ``` item_9.xml ``` <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="horizontal"> <LinearLayout android:orientation="horizontal"> <LinearLayout android:orientation="horizontal"> <TextView android:id="@+id/text1"/> <ImageView android:id="@+id/img3" /> </LinearLayout> <LinearLayout android:orientation="horizontal"> <ImageView android:id="@+id/img4" /> <TextView android:id="@+id/text2"/> <ProgressBar android:id="@+id/bar" /> <TextView android:id="@+id/text3" /> </LinearLayout> <LinearLayout android:orientation="horizontal"> <ImageView android:id="@+id/img" /> <TextView android:id="@+id/text4" /> <ProgressBar android:id="@+id/br" /> <TextView android:id="@+id/text5"/> </LinearLayout> <LinearLayout android:orientation="horizontal"> <ImageView android:id="@+id/img94"/> <TextView android:id="@+id/text6"/> <ProgressBar android:id="@+id/r" /> <TextView android:id="@+id/text7"/> </LinearLayout> <LinearLayout android:orientation="horizontal"> <ImageView android:id="@+id/img93" /> <TextView android:id="@+id/text8"/> <ProgressBar android:id="@+id/ar" /> <TextView android:id="@+id/text9"/> </LinearLayout> <LinearLayout android:orientation="horizontal"> <ImageView android:id="@+id/img22" /> <TextView android:id="@+id/text10"/> <ProgressBar android:id="@+id/ar13" /> <TextView android:id="@+id/text11"/> </LinearLayout> <LinearLayout android:orientation="horizontal"> <ImageView android:id="@+id/img6"/> <TextView android:id="@+id/text12" /> <ProgressBar android:id="@+id/r17" /> <TextView android:id="@+id/text13"/> </LinearLayout> <LinearLayout android:orientation="horizontal" > <LinearLayout android:orientation="vertical" > <LinearLayout android:orientation="horizontal" > <TextView android:id="@+id/text17"/> <ImageView android:id="@+id/mg"/> <ImageView android:id="@+id/mg2"/> <ImageView android:id="@+id/dev_ctrl_stat_img3"/> <ImageView android:id="@+id/k"/> <ImageView android:id="@+id/img90"/> <ImageView android:id="@+id/img91"/> <TextView android:id="@+id/text19"/> <TextView android:id="@+id/text20" /> </LinearLayout> <LinearLayout android:gravity="center_vertical" /> <ImageView android:src="@drawable/img9" /> <TextView android:gravity="center_vertical" /> <TextView android:layout_width="wrap_content"/> </LinearLayout> </LinearLayout> <LinearLayout android:layout_weight="4.5" > <ImageView android:id="@+id/qry"/> </LinearLayout> </LinearLayout> </LinearLayout> </LinearLayout> ``` 想实现的功能是:item.xml全部写进gridview的一个item中,这个item里有9行,我下个item调用令一个5行的item5.xml,要保障不同item每行的高度都一样,如何实现呢,求大神指教!

android gridview第一个item

gridview 中的第一个item中放置了图片和textview,启用线程进行刷新显示textview的内容,其他的item都正常只有第一个item不正常显示,求大神指导

gridView的item点击事件

![图1][1] ![图2][2] [1]: http://img.my.csdn.net/uploads/201307/23/1374573549_5643.png [2]: http://img.my.csdn.net/uploads/201307/23/1374573550_5314.png 图1中有21个item,点击其中任何一个item会跳转到图2界面,就是说图2是公共界面,问题出现了,我想点击图2的按钮时,比如说map,这时会根据我在图1中选择的item跳转到对应的界面。 再具体点就是图1中前三个item分别是北京,上海,广州,当我点击北京时跳转到图2,再点击map按钮时,就会跳转到北京市的地图,同理,当我在图1中选择上海时,到图2时我再选择map,那么就会跳转到上海市的地图,其他两个按钮photo、note的功能实现方法和map一样,大神在哪里,这能实现不

android gridview每个item高度都是相同的

我现在想第一个item块的高度是其他的2倍,其他高度宽度正常,怎么实现呢,网上 找了也没有好的解决方案!

android gridview item 响应事件在长按后交给其他view处理

android gridview item 响应事件在长按后交给其他view处理,比如,点击按钮弹出gridview菜单,点击item这时候菜单窗口隐藏,屏幕中的其他view执行了其他操作,比如其他view抓取到了屏幕移动抬起等操作然后执行任务。

android中怎么在gridview中实现像radiogroup那样的单选效果呢?

android中怎么在gridview中实现像radiogroup那样的单选效果呢?我的Item布局里只是一个简单的Button,就想实现像radioButton那样的单选效果,但选中某个Item时,那个Button会变成红色。

GridView下方有时会出现很大的空白,为什么?

ListView的item中使用GridView显示图片时,GridView下方有时会出现很大的空白,下拉ListView再上拉,空白会消失,为什么? 有人遇到过与我一样的问题吗?

android gridview+viewpager,根据 position改变item背景。

android gridview+viewpager,怎样根据setOnItemClickListener position改变item背景。 viewpager是循环加入的。 activity里 for (i = 0; i < videoNum / 4; i++) {//我这里的videoNum是20 view = getActivity().getLayoutInflater().inflate( R.layout.fragment_four_video, null); if (viewList.size() < (videoNum / 4)) { viewList.add(view); gridView = (GridView) view.findViewById(R.id.gv); mAdapter = new BaseMoreAdapter(getActivity(), 2, 2, displaychannels, i); gridView.setAdapter(mAdapter); gridView.setSelection(0); gridView.setOnItemClickListener(onItemClick); } } mVpAdapter = new ViewPagerAdapter(viewList); mVPager.setAdapter(mVpAdapter); 在点击事件里调用了适配器里的方法更换背景 private OnItemClickListener onItemClick = new OnItemClickListener() { @Override public void onItemClick(AdapterView<?> arg0, View arg1, int position, long arg3) { mAdapter.setSeclection(position); mAdapter.notifyDataSetChanged();} adapter下 public void setSeclection(int position) { clickTemp = position; } adapter getview方法里 if (clickTemp == position) { viewHolder.mRlContent.setBackgroundResource(R.drawable.a); } else { viewHolder.mRlContent.setBackgroundResource(R.drawable.b); } 这样写的结果是,因为循环的关系每次都是操作了最后一页,怎样可以更换viewpager当前页的gridview的item的背景。

android gridview里面点击事件

gridview的一个item布局里面有3个点击事件android:onClick="tock_on" android:onClick="tock_off" android:onClick="search",怎么实现对他们的操作呢?

android 的gridview如何把最后一个item固定做一个添加更多的按钮

添加更多按钮添加一个给添加更多加一个,大神知道的给我发280230816@qq.con邮箱里 谢谢!!!!!!!!!!

Android gridview怎样实现这种效果?

Android中gridview怎样实现如图这种效果?每个item像checkbox一样有选中和未选中的两种状态,并且可以获取到选择的状态,求实现方法或思路?

android中gridView问题,程序无法运行

一下是代码: package com.example.android_gridview; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import android.app.Activity; import android.os.Bundle; import android.view.Menu; import android.view.MenuItem; import android.widget.GridView; import android.widget.SimpleAdapter; public class MainActivity extends Activity { private GridView gridView; private List<Map<String,Object>>dataList; private int[]icon={R.drawable.tu1,R.drawable.tu2,R.drawable.tu3png,R.drawable.tu4}; private String[]iconName={"天气","日历","时钟","铃声"}; private SimpleAdapter adapter; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); gridView=(GridView) findViewById(R.id.gridView); //1、准备数据源 //2、新建适配器(SimpleAdapter) //3、GridView加载适配器 //4、GridView配置事件监听器(OnItemClickListener) dataList=new ArrayList<Map<String,Object>>(); getData(); adapter=new SimpleAdapter(this,getData(), R.layout.item,new String[]{"img","text"}, new int[]{R.id.image,R.id.text}); gridView.setAdapter(adapter); } private List<Map<String,Object>> getData(){ for(int i=0;i<icon.length;i++){ Map<String,Object>map=new HashMap<String,Object>(); map.put("img", icon[i]); map.put("text",iconName[i]); dataList.add(map); }return dataList; } } 程序无法运行

android listview 嵌套 gridview,gridview点击当前图片并全屏放大

贴下效果图:图片是用gridview展示的。 ![图片说明](https://img-ask.csdn.net/upload/201610/13/1476325538_92234.jpg) ![图片说明](https://img-ask.csdn.net/upload/201610/13/1476325843_41804.png) 在Adapter中给giView赋值。所以只能在adapter中获取giView点击哪个图片。 问题是如果要实现点击图片全屏那这个功能又要在Activity中实现。在Adapter中肯定是不行的。所以我现在不知道怎么办了。我要把Adapter中的点击的哪组哪个图片监听到让Activity实现放大功能。 本用回调或许可以但是我不熟悉,求一个可行的方法。

2019 Python开发者日-培训

2019 Python开发者日-培训

150讲轻松搞定Python网络爬虫

150讲轻松搞定Python网络爬虫

设计模式(JAVA语言实现)--20种设计模式附带源码

设计模式(JAVA语言实现)--20种设计模式附带源码

YOLOv3目标检测实战:训练自己的数据集

YOLOv3目标检测实战:训练自己的数据集

java后台+微信小程序 实现完整的点餐系统

java后台+微信小程序 实现完整的点餐系统

三个项目玩转深度学习(附1G源码)

三个项目玩转深度学习(附1G源码)

初级玩转Linux+Ubuntu(嵌入式开发基础课程)

初级玩转Linux+Ubuntu(嵌入式开发基础课程)

2019 AI开发者大会

2019 AI开发者大会

玩转Linux:常用命令实例指南

玩转Linux:常用命令实例指南

一学即懂的计算机视觉(第一季)

一学即懂的计算机视觉(第一季)

4小时玩转微信小程序——基础入门与微信支付实战

4小时玩转微信小程序——基础入门与微信支付实战

Git 实用技巧

Git 实用技巧

Python数据清洗实战入门

Python数据清洗实战入门

使用TensorFlow+keras快速构建图像分类模型

使用TensorFlow+keras快速构建图像分类模型

实用主义学Python(小白也容易上手的Python实用案例)

实用主义学Python(小白也容易上手的Python实用案例)

程序员的算法通关课:知己知彼(第一季)

程序员的算法通关课:知己知彼(第一季)

MySQL数据库从入门到实战应用

MySQL数据库从入门到实战应用

机器学习初学者必会的案例精讲

机器学习初学者必会的案例精讲

手把手实现Java图书管理系统(附源码)

手把手实现Java图书管理系统(附源码)

极简JAVA学习营第四期(报名以后加助教微信:eduxy-1)

极简JAVA学习营第四期(报名以后加助教微信:eduxy-1)

.net core快速开发框架

.net core快速开发框架

玩转Python-Python3基础入门

玩转Python-Python3基础入门

Python数据挖掘简易入门

Python数据挖掘简易入门

微信公众平台开发入门

微信公众平台开发入门

程序员的兼职技能课

程序员的兼职技能课

Windows版YOLOv4目标检测实战:训练自己的数据集

Windows版YOLOv4目标检测实战:训练自己的数据集

HoloLens2开发入门教程

HoloLens2开发入门教程

微信小程序开发实战

微信小程序开发实战

Java8零基础入门视频教程

Java8零基础入门视频教程

相关热词 c# 按行txt c#怎么扫条形码 c#打包html c# 实现刷新数据 c# 两个自定义控件重叠 c#浮点类型计算 c#.net 中文乱码 c# 时间排序 c# 必备书籍 c#异步网络通信
立即提问