Android 横向****列表****实现,可左右滑动,如下图

1.主界面布局代码:activity_main.xml
a.包裹HorizontalScrollView控件是GirdView横向滚动的基本条件b.GirdView外包裹LinearLayout是java代码中参数设置的必要条件

<?xml version="1.0" encoding="utf-8"?>                                                

2.主界面GridView列表子项布局文件:list_item.xml

                            

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 * @summary 博客地址欢迎访问: http://www.cnblogs.com/_ymw */public class MainActivity extends Activity {    List 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 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 list;        public GridViewAdapter(Context _context, List _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.项目代码如下链接:
http://files.cnblogs.com/ymw/HorizontalListView%E5%8D%9A%E5%AE%A2%E9%99%84%E4%BB%B6.rar

更多相关文章

  1. Android开发:LayoutParams的用法
  2. Android中Paint字体的使用
  3. Android与OpenCV2.4.4(2013最新)搭建图像处理框架
  4. 谷歌官方推荐的下拉刷新设计——Android(安卓)SwipeRefreshLayou
  5. Android(安卓)5.0新控件常用属性收集
  6. 初学者之Android(安卓)HelloWorld项目
  7. Android之Canvas绘图
  8. Android滑动列表加载大量图片时候的优化
  9. Android中的FrameLayout帧布局

随机推荐

  1. Android(安卓)实战技巧-状态栏渐变
  2. Android开发环境搭建:SDK在线离线安装+在E
  3. android学习十二(android的Content Provid
  4. 通过OTA的方式在局域网分发iOS应用
  5. Android(安卓)音视频编辑经验总结及开源
  6. Android(安卓)人脸检测方案概要
  7. Android(安卓)重读官方文档 2 兼容性
  8. [Android(安卓)Studio 权威教程]AS构建系统
  9. 【Android】【gradle】Gradle与Android(
  10. android:apk版本的的比对、下载、安装