Android开发实现横向列表GridView横向滚动的方法【附源码下载】

Android开发实现横向列表GridView横向滚动的方法【附源码下载】,第1张

概述本文实例讲述了Android开发实现横向列表GridView横向滚动的方法。分享给大家供大家参考,具体如下:

本文实例讲述了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横向滚动的方法【附源码下载】所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1143159.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-31
下一篇 2022-05-31

发表评论

登录后才能评论

评论列表(0条)

保存