欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

实现图文混排ListView展示 ---- Android版 博客分类: android android java listview 

程序员文章站 2024-03-15 16:45:18
...

使用eclipse创建一个Android Application  创建完成之后,开始java代码的编写

  • 声明变量
    //listview列表
    private ListView listView;
    //数据适配器
    private SimpleAdapter simp_adapter;
    //被展示数据源
    private List<Map<String,Object>>dataList;
     
  • 在res/layout 中创建 main.xml和item.xml ,把main.xml做为展示的主页面 ,那么在MainActivity.java文件中函数onCreat修改为:
    protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);
    }
     
  • 在 main.xml 中添加一个listview,(手动拖动控件也会将代码展示到main.xml中)如下:
    <ListView
            android:id="@+id/listView"
            android:layout_width="match_parent"
            android:layout_height="wrap_content" >
    </ListView>
     
  • item.xml文件是布局listview中一栏的图片和文字 。在item.xml文件中添加一个imageview 和 两个 textview,代码如下:
       <ImageView 
            android:id="@+id/pic"
            android:layout_marginTop="15dp"
            android:layout_marginLeft="15dp"
            android:paddingBottom="15dp"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@drawable/aiweier"/>
        
        <TextView 
            android:id="@+id/name"
            android:layout_marginLeft="15dp"
            android:layout_marginTop="10dp"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textColor="#000000"
            android:textSize="20sp"
            />
        <TextView 
            android:id="@+id/profile"
            android:layout_marginLeft="-60dp"
            android:layout_marginTop="35dp"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textColor="#000000"
            android:textSize="15sp"
            />
     
  • 将在MainActivity.java文件中声明的变量实例化
    protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);
            listView = (ListView)findViewById(R.id.listView);
            //新建一个数组适配器
            //ArrayAdapter(上下文,当前listview加载的每一个列表项所对应的布局文件,数据源)
            //SimpleAdapter()
            /*
             * context:上下文
             * data:(List<? extends Map<String, ?>> data)一个Map所组成的List集合
             *      每一个map都回去对应了listview列表中的一行
             *      每一个Map(键值对)中的键必须包含所有在from中所指定的键
             * resource:列表项的布局文件ID,与from成对应关系
             * from:Map中的键名
             * to:绑定数据视图中的ID
             */
            //适配器加载数据源
            dataList = new ArrayList<Map<String,Object>>();
            simp_adapter = new SimpleAdapter(this, getData(), R.layout.item, new String[]{"pic","name","profile"}, new int[]{R.id.pic,R.id.name,R.id.profile});
            //视图加载适配器
            listView.setAdapter(simp_adapter);
        }
     
  • 左侧显示的图片保存在文件/res/drawable-hdpi中,这样我们就可以通过R.drawable.filename获取到图片了,如:R.drawable.fanbingbing,这可是一个int类型的数据,所以我用int类型的数组存储这些图片数据
    int[] arr_pic = {R.drawable.fanbingbing,R.drawable.yangmi,R.drawable.zhangxinyi,R.drawable.aiweier,R.drawable.liushishi,R.drawable.piaoxinhui,R.drawable.yuner};
    //我们这有 范冰冰  杨幂 张歆艺 艾薇儿 刘诗诗 朴信惠 允儿
     
  • 实现获取数据的函数getData(),函数的返回值类型为List<Map<String,Object>>,实现代码如下:
    private List<Map<String,Object>> getData()
    {
        	int[] arr_pic = {R.drawable.fanbingbing,R.drawable.yangmi,R.drawable.zhangxinyi,R.drawable.aiweier,R.drawable.liushishi,R.drawable.piaoxinhui,R.drawable.yuner};
        	String[] arr_name = {"范冰冰","杨幂幂","张歆艺","艾薇儿","刘诗诗","朴信惠","允儿儿"};
        	String[] arr_profile = {
        			"1981年9月16日生于山东青岛,毕业于上海师范大学谢晋影视艺术学院,中国女演员。",
                    "中国女演员、歌手、电视剧制片人。出生于北京。毕业于北京电影学院表演系。",
        			"中国内地女演员,出生于1981年5月29日,2005年毕业于*戏剧学院表演系本科班。",
        			"1984年9月27日出生于加拿大安大略省,加拿大女歌手、词曲创作者、演员。",
        			"原名刘诗施,中国内地影视女演员,出生于北京,毕业于北京舞蹈学院芭蕾舞专业。",
        			"2001年,11岁的朴信惠拍摄了李承焕的第一部MV《爱吗》",
        			"1990年5月30日出生于首尔,韩国女歌手、演员,女子演唱团体少女时代成员。"
        	};
        	for(int i = 0; i < 7; i ++)
        	{
        		Map<String,Object> map = new HashMap<String, Object>();
        		map.put("pic", arr_pic[i]);
        		map.put("name", arr_name[i]);
        		map.put("profile", arr_profile[i]);
        		dataList.add(map);
        	}
        	return dataList;
    }
     
  • 好了,整个的图文混排的listview展示完毕了,大家请欣赏
    实现图文混排ListView展示  ---- Android版
            
    
    博客分类: android android java listview 

 

  • 实现图文混排ListView展示  ---- Android版
            
    
    博客分类: android android java listview 
  • 大小: 81 KB