本文实例讲述了AndroID开发实现横向列表GrIDVIEw横向滚动的方法。分享给大家供大家参考,具体如下:
AndroID 横向列表实现,可左右滑动,如下图
1. 主界面布局代码:activity_main.xml
a.包裹@R_502_518@控件是GirdVIEw横向滚动的基本条件
b.GirdVIEw外包裹linearLayout是java代码中参数设置的必要条件
<?xml version="1.0" enCoding="utf-8"?><linearLayout xmlns:androID="http://schemas.androID.com/apk/res/androID" androID:layout_wIDth="fill_parent" androID:layout_height="fill_parent" androID:orIEntation="vertical" > <@R_502_518@ androID:layout_wIDth="fill_parent" androID:layout_height="wrap_content" androID:layout_margin="5dp" > <linearLayout androID:layout_wIDth="wrap_content" androID:layout_height="fill_parent" androID:layout_margin="10dp" > <GrIDVIEw androID:ID="@+ID/grID" androID:layout_wIDth="fill_parent" androID:layout_height="fill_parent" androID:gravity="center" androID:numColumns="auto_fit" androID:stretchMode="spacingWIDthUniform" > </GrIDVIEw> </linearLayout> </@R_502_518@></linearLayout>
2.主界面GrIDVIEw列表子项布局文件:List_item.xml
<?xml version="1.0" enCoding="utf-8"?><linearLayout xmlns:androID="http://schemas.androID.com/apk/res/androID" androID:ID="@+ID/itemlayout" androID:layout_wIDth="wrap_content" androID:layout_height="wrap_content" androID:orIEntation="vertical" > <ImageVIEw androID:ID="@+ID/ItemImage" androID:layout_wIDth="80.0dip" androID:layout_height="80.0dip" androID:layout_gravity="center_horizontal" androID:src="@drawable/china" > </ImageVIEw> <TextVIEw androID:ID="@+ID/tvCity" androID:layout_wIDth="wrap_content" androID:layout_height="wrap_content" androID:layout_gravity="center_horizontal" androID:text="Title" androID:textcolor="#000000" > </TextVIEw> <TextVIEw androID:ID="@+ID/tvCode" androID:layout_wIDth="wrap_content" androID:layout_height="wrap_content" androID:layout_gravity="center_horizontal" androID:text="Info" androID:textcolor="#000000" > </TextVIEw></linearLayout>
3.java实现代码:MainActivity.java
package com.example.horizontallistvIEw;import java.util.ArrayList;import java.util.List;import androID.app.Activity;import androID.content.Context;import androID.os.Bundle;import androID.util.displayMetrics;import androID.vIEw.LayoutInflater;import androID.vIEw.VIEw;import androID.vIEw.VIEwGroup;import androID.Widget.BaseAdapter;import androID.Widget.GrIDVIEw;import androID.Widget.linearLayout;import androID.Widget.relativeLayout;import androID.Widget.TextVIEw;/*** * * @author ymw */public class MainActivity extends Activity { List<CityItem> cityList; relativeLayout itmel; GrIDVIEw grIDVIEw; @OverrIDe protected voID onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentVIEw(R.layout.activity_main); LayoutInflater layoutInflater = (LayoutInflater) this .getSystemService("layout_inflater"); grIDVIEw = (GrIDVIEw) findVIEwByID(R.ID.grID); setData(); setGrIDVIEw(); } /**设置数据*/ private voID setData() { cityList = new ArrayList<CityItem>(); CityItem item = new CityItem(); item.setCityname("深圳"); item.setCityCode("0755"); cityList.add(item); item = new CityItem(); item.setCityname("上海"); item.setCityCode("021"); cityList.add(item); item = new CityItem(); item.setCityname("广州"); item.setCityCode("020"); cityList.add(item); item = new CityItem(); item.setCityname("北京"); item.setCityCode("010"); cityList.add(item); item = new CityItem(); item.setCityname("武汉"); item.setCityCode("027"); cityList.add(item); item = new CityItem(); item.setCityname("孝感"); item.setCityCode("0712"); cityList.add(item); cityList.addAll(cityList); } /**设置GirdVIEw参数,绑定数据*/ private voID setGrIDVIEw() { int size = cityList.size(); int length = 100; displayMetrics dm = new displayMetrics(); getwindowManager().getDefaultdisplay().getMetrics(dm); float density = dm.density; int grIDvIEwWIDth = (int) (size * (length + 4) * density); int itemWIDth = (int) (length * density); linearLayout.LayoutParams params = new linearLayout.LayoutParams( grIDvIEwWIDth,linearLayout.LayoutParams.FILL_PARENT); grIDVIEw.setLayoutParams(params); // 设置GirdVIEw布局参数,横向布局的关键 grIDVIEw.setColumnWIDth(itemWIDth); // 设置列表项宽 grIDVIEw.setHorizontalSpacing(5); // 设置列表项水平间距 grIDVIEw.setStretchMode(GrIDVIEw.NO_STRETCH); grIDVIEw.setNumColumns(size); // 设置列数量=列表集合数 GrIDVIEwAdapter adapter = new GrIDVIEwAdapter(getApplicationContext(),cityList); grIDVIEw.setAdapter(adapter); } /**GirdVIEw 数据适配器*/ public class GrIDVIEwAdapter extends BaseAdapter { Context context; List<CityItem> List; public GrIDVIEwAdapter(Context _context,List<CityItem> _List) { this.List = _List; this.context = _context; } @OverrIDe public int getCount() { return List.size(); } @OverrIDe public Object getItem(int position) { return List.get(position); } @OverrIDe public long getItemID(int position) { return position; } @OverrIDe public VIEw getVIEw(int position,VIEw convertVIEw,VIEwGroup parent) { LayoutInflater layoutInflater = LayoutInflater.from(context); convertVIEw = layoutInflater.inflate(R.layout.List_item,null); TextVIEw tvCity = (TextVIEw) convertVIEw.findVIEwByID(R.ID.tvCity); TextVIEw tvCode = (TextVIEw) convertVIEw.findVIEwByID(R.ID.tvCode); CityItem city = List.get(position); tvCity.setText(city.getCityname()); tvCode.setText(city.getCityCode()); return convertVIEw; } } public class CityItem { private String cityname; private String cityCode; public String getCityname() { return cityname; } public voID setCityname(String cityname) { this.cityname = cityname; } public String getCityCode() { return cityCode; } public voID setCityCode(String cityCode) { this.cityCode = cityCode; } }}
4.完整实例代码点击此处本站下载。
更多关于AndroID相关内容感兴趣的读者可查看本站专题:《Android开发入门与进阶教程》、《Android调试技巧与常见问题解决方法汇总》、《Android基本组件用法总结》、《Android视图View技巧总结》、《Android布局layout技巧总结》及《Android控件用法总结》
希望本文所述对大家AndroID程序设计有所帮助。
总结以上是内存溢出为你收集整理的Android开发实现横向列表GridView横向滚动的方法【附源码下载】全部内容,希望文章能够帮你解决Android开发实现横向列表GridView横向滚动的方法【附源码下载】所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)