安卓gridview控件使用详解(怎样动态设置GridView的宽和高(Android))

2024-09-14 05:10:05 :17

安卓gridview控件使用详解(怎样动态设置GridView的宽和高(Android))

“安卓gridview控件使用详解”相关信息最新大全有哪些,这是大家都非常关心的,接下来就一起看看安卓gridview控件使用详解(怎样动态设置GridView的宽和高(Android))!

本文目录

怎样动态设置GridView的宽和高(Android)

  以下两种方式都可以做到:

  一、在xml布局文件中设置,wrap_content即表示根据gridView的内容自使用宽高,代码如下:

 android:layout_width="wrap_content" android:layout_height="wrap_content"

  二、在代码中动态设置,可以在对gridview赋值之后,计算gridview的宽高,然后进行设置:

int height = 20;//此处的高度需要动态计算  int width = 30;//此处的宽度需要动态计算 LinearLayout.LayoutParams linearParams =new LayoutParams(width, height);gridview.setLayoutParams(linearParams); //使设置好的布局参数应用到控件

  需要注意的是:如果你的gridview是嵌套在ScrollView中,那么,你需要重写gridview控件,不然gridview只显示一行的问题(即高度不够),具体重写方式,可以参考下面代码:

/** * @author hnbcinfo * 自定义GridView控件,解决在ListView 或ScrollView中使用GridView导致GridView显示不全的问题 * 当前应用:时间轴中,图片显示 */public class GridViewForScrollView extends GridView {       public GridViewForScrollView(Context context, AttributeSet attrs) {           super(context, attrs);       }         public GridViewForScrollView(Context context) {           super(context);       }         public GridViewForScrollView(Context context, AttributeSet attrs, int defStyle) {           super(context, attrs, defStyle);       }         @Override       public void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {             int expandSpec = MeasureSpec.makeMeasureSpec(                   Integer.MAX_VALUE 》》 2, MeasureSpec.AT_MOST);           super.onMeasure(widthMeasureSpec, expandSpec);       }   }

android gridview 怎样设置自动滚动到底部

今天就关于用GridView控件来实现滚动到底部加载更多数据一个效果实现的技术讲解: 1、ScrollView中嵌套GridView布局 2、ScrollView滚动到底部监听 3、数据加载,刷新适配器

android中gridview里怎么添加button按钮啊

代码如下:

主xml文件:

android:id="@+id/gv"

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:columnWidth="50dp"

android:stretchMode="columnWidth"

android:numColumns="auto_fit"

android:verticalSpacing="5dp"

android:horizontalSpacing="5dp"

android:gravity="center"

/》

显示格式(xml)

    android:orientation="horizontal"

    android:layout_width="fill_parent"

    android:layout_height="fill_parent"

    android:padding="5dp"

    》

android:id="@+id/iv"

    android:layout_width="60dp" 

    android:layout_height="60dp"

    android:scaleType="fitXY" 

    /》

   

    android:id="@+id/ll"

    android:layout_width="wrap_content"

    android:layout_height="wrap_content"

    android:orientation="vertical"

    》

   

    android:id="@+id/tv_name"

    android:layout_width="wrap_content"

    android:layout_height="30dp"

    android:paddingLeft="20dp"

    android:gravity="center_horizontal"

    /》

   

    android:id="@+id/tv_price"

    android:layout_width="wrap_content"

    android:layout_height="30dp"

    android:paddingLeft="20dp"

    android:gravity="center_horizontal"

    /》

    

   

   

    android:id="@+id/b_del"

    android:layout_width="wrap_content"

    android:layout_height="wrap_content"

    android:text="删除"

    android:focusable="false"

    android:layout_marginLeft="100dp"

    /》

适配器(BasesAdapter)

@Override

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

// TODO Auto-generated method stub

// 获取item的layout

View view = LayoutInflater.from(context).inflate(R.layout.list_1, null);

// 从layout中获取控件

ImageView iv = (ImageView) view.findViewById(R.id.iv);

TextView tv_name = (TextView) view.findViewById(R.id.tv_name);

TextView tv_price = (TextView) view.findViewById(R.id.tv_price);

Button b_del = (Button) view.findViewById(R.id.b_del);

// 为控件绑定数据

Sword sword = data.get(position);

iv.setImageResource(sword.getImg());

tv_name.setText(sword.getName());

tv_price.setText(sword.getPrice());

b_del.setOnClickListener(new OnClickListener() {

@Override

public void onClick(View v) {

// TODO Auto-generated method stub

data.remove(position); // 删除item

Adapter.this.notifyDataSetChanged(); // 刷新data

}

});

return view;

}

效果如图

android怎么获取GridView中的View控件

在Adpter里实现getview方法,在该方法里new一个view 等于super,getview();然后再用来TextView textview = (TextView)view.findviewbyid(R.id.textview)获取

android的gridview 怎么控制其高度

1,控制其控件的总体高度,可以通过布局直接设置layout_height,也可以动态赋值给他,但我相信楼主问的不是这个。2,控制每个单元的高度。由于gridview没有直接set单元高度的函数,而gridview是根据adapter动态生成的,所以一般在adapter的getView方法中得到(该方法返回的View的高度),在这里处理即可。

android Gridview如何控制滑动速度或滑动距离

写个程序就可以了,具体如下:1,定义一个类继承GridView,如下:public class SourcePanel extends GridView { public SourcePanel(Context context) { super(context); } public SourcePanel(Context context, AttributeSet attrs) { super(context, attrs); } public SourcePanel(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); }}注意:构造方法要将GridView中的三种构造全部写上,否则很可能出现解析xml文件异常的错误。2,在该类中重写dispatchTouchEvent()方法,如下: @Overridepublic boolean dispatchTouchEvent(MotionEvent ev) { if (ev.getAction() == MotionEvent.ACTION_MOVE) { return true; //禁止GridView滑动 }return super.dispatchTouchEvent(ev);}3,在布局文件(xml)中定义该控件时写全包名,如下(属性跟GridView控件属性一样,按需求自加): 《com.kz.steerwheel.view.SourcePanel android:id="@+id/sourcePanel" android:layout_width="match_parent" android:layout_height="match_parent" /》

如何设置 android gridview 怎么设置 , 一些item可以点击,另外..

这个要在代码中进行设置,基本上有两种方式:

  1. 在GridView所在的 activity(或者fragment)中, 找到该View,监听点击事件:

    gridView.setOnItemClickListener(new AdapterView.OnItemClickListener() {    @Override    public void onItemClick(AdapterView《?》 parent, View view, int position, long id) {        //点击item触发,进行判断,如果需要处理点击,就进行处理,否则,什么也不做        if(/*处理点击条件*/){            //要做的事            }    }});

  2. 在自己写的GridView对应的适配器中(一般继承于BaseAdapter)的getView中进行判断,如果是需呀处理的item, 就调用setOnClickListener,并定义相应的点击事件,否则可以不绑定点击事件。

android GridView怎么实现合并行或者达到同样的效果

GridView跟ListView都是比较常用的多控件布局,而GridView更是实现九宫图的首选!本文就是介绍如何使用GridView实现九宫图。GridView的用法很多,网上介绍最多的方法就是自己实现一个ImageAdapter继承BaseAdapter,再供GridView使用,类似这种的方法本文不再重复,本文介绍的GridView用法跟前文ListView的极其类似本文需要添加/修改3个文件:main.xml、night_item.xml、JAVA源代码。main.xml源代码如下,本身是个GirdView,用于装载Item: view plaincopyprint?《?xml version="1.0" encoding="utf-8"?》 ***隐藏网址*** android:id="@+id/gridview" android:layout_width="fill_parent" android:layout_height="fill_parent" android:numColumns="auto_fit" android:verticalSpacing="10dp" android:horizontalSpacing="10dp" android:columnWidth="90dp" android:stretchMode="columnWidth" android:gravity="center" /》 介绍一下里面的某些属性:android:numColumns="auto_fit" ,GridView的列数设置为自动android:columnWidth="90dp",每列的宽度,也就是Item的宽度android:stretchMode="columnWidth",缩放与列宽大小同步android:verticalSpacing="10dp",两行之间的边距,如:行一(NO.0~NO.2)与行二(NO.3~NO.5)间距为10dpandroid:horizontalSpacing="10dp",两列之间的边距。接下来介绍 night_item.xml,这个XML跟前面ListView的ImageItem.xml很类似: view plaincopyprint?《?xml version="1.0" encoding="utf-8"?》 《RelativeLayout ***隐藏网址*** android:layout_height="wrap_content" android:paddingBottom="4dip" android:layout_width="fill_parent"》 《ImageView android:layout_height="wrap_content" android:id="@+id/ItemImage" android:layout_width="wrap_content" android:layout_centerHorizontal="true"》 《/ImageView》 《TextView android:layout_width="wrap_content" android:layout_below="@+id/ItemImage" android:layout_height="wrap_content" android:text="TextView01" android:layout_centerHorizontal="true" android:id="@+id/ItemText"》 《/TextView》 《/RelativeLayout》 最后就是JAVA的源代码了,也跟前面的ListView的JAVA源代码很类似,不过多了“选中”的事件处理: view plaincopyprint? public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); GridView gridview = (GridView) findViewById(R.id.gridview); //生成动态数组,并且转入数据 ArrayList《HashMap《String, Object》》 lstImageItem = new ArrayList《HashMap《String, Object》》(); for(int i=0;i《10;i++) { HashMap《String, Object》 map = new HashMap《String, Object》(); map.put("ItemImage", R.drawable.icon);//添加图像资源的ID map.put("ItemText", "NO."+String.valueOf(i));//按序号做ItemText lstImageItem.add(map); } //生成适配器的ImageItem 《====》 动态数组的元素,两者一一对应 SimpleAdapter saImageItems = new SimpleAdapter(this, //没什么解释 lstImageItem,//数据来源 R.layout.night_item,//night_item的XML实现 //动态数组与ImageItem对应的子项 new String {"ItemImage","ItemText"}, //ImageItem的XML文件里面的一个ImageView,两个TextView ID new int {R.id.ItemImage,R.id.ItemText}); //添加并且显示 gridview.setAdapter(saImageItems); //添加消息处理 gridview.setOnItemClickListener(new ItemClickListener()); } //当AdapterView被单击(触摸屏或者键盘),则返回的Item单击事件 class ItemClickListener implements OnItemClickListener { public void onItemClick(AdapterView《?》 arg0,//The AdapterView where the click happened View arg1,//The view within the AdapterView that was clicked int arg2,//The position of the view in the adapter long arg3//The row id of the item that was clicked ) { //在本例中arg2=arg3 HashMap《String, Object》 item=(HashMap《String, Object》) arg0.getItemAtPosition(arg2); //显示所选Item的ItemText setTitle((String)item.get("ItemText")); } }

如果你还想了解更多这方面的信息,记得收藏关注本站。

安卓gridview控件使用详解(怎样动态设置GridView的宽和高(Android))

本文编辑:admin
Copyright © 2022 All Rights Reserved 威海上格软件有限公司 版权所有

鲁ICP备20007704号

Thanks for visiting my site.