`
jean7155
  • 浏览: 62891 次
  • 性别: Icon_minigender_2
  • 来自: 上海
社区版块
存档分类
最新评论

GridView显示ICON和TEXT

阅读更多
1. 设置GridView的布局
<?xml version="1.0" encoding="utf-8"?>
<GridView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/gridview"
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent"
    android:columnWidth="90dp"
    android:numColumns="auto_fit"
    android:verticalSpacing="10dp"
    android:horizontalSpacing="10dp"
    android:stretchMode="columnWidth"
    android:gravity="center"
/>


2. 设置Icon+Text的布局
<?xml version="1.0" encoding="utf-8"?>

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"  
    android:layout_height="wrap_content"   
    android:layout_width="wrap_content"  
    android:orientation="vertical"  
    android:gravity="center"  
    android:layout_gravity="center"  
    >  
    <LinearLayout   
        android:layout_height="wrap_content"   
        android:layout_width="wrap_content"  
        android:orientation="vertical"  
        android:gravity="center"  
        android:layout_gravity="center">  
        <ImageView   
            android:id="@+id/icon_image"  
            android:layout_height="80dip"   
            android:layout_width="80dip"  
            android:gravity="center"  
            android:layout_gravity="center"   
            >  
        </ImageView>  
        <TextView   
            android:id="@+id/icon_text"  
            android:layout_width="wrap_content"  
            android:layout_height="wrap_content"  
            android:singleLine="true"  
            android:gravity="center"  
            android:layout_gravity="center"  
            android:textSize="13px"  
            android:layout_marginTop="4dip"  
            >  
        </TextView>  
    </LinearLayout>   
</FrameLayout>    



3. 创建显示的Adapter
public class HomeImageAdapter extends BaseAdapter {
	
	private Context mContext;
	private LayoutInflater mInflater;
	LinearLayout.LayoutParams params;  
	
	 private Integer[] mThumbIds = {
			 	R.drawable.s81, R.drawable.s82,
			 	R.drawable.s84, R.drawable.s87,
	            R.drawable.s94
	    };
	 
	 private String[] mStrings = {"联系电话","国家","省","城市","城市II"};
	
	public HomeImageAdapter(Context c){
		mContext = c;
		mInflater = LayoutInflater.from(c);
		params = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT);  
        params.gravity = Gravity.CENTER; 
	}

	@Override
	public int getCount() {
		return mThumbIds.length;
	}

	@Override
	public Object getItem(int position) {
		// TODO Auto-generated method stub
		return null;
	}

	@Override
	public long getItemId(int position) {
		// TODO Auto-generated method stub
		return 0;
	}

	@Override
	public View getView(int position, View convertView, ViewGroup parent) {
		
		ItemViewTag viewTag;  
		
		if (convertView == null)  
        {  
            convertView = mInflater.inflate(R.layout.home_icontext, null);  
              
            // construct an item tag   
            viewTag = new ItemViewTag((ImageView) convertView.findViewById(R.id.icon_image), (TextView) convertView.findViewById(R.id.icon_text));  
            convertView.setTag(viewTag);  
        } else  
        {  
            viewTag = (ItemViewTag) convertView.getTag();  
        }  
          
        // set name   
        viewTag.mName.setText(mStrings[position]);  
          
        // set icon   
        viewTag.mIcon.setBackgroundResource(mThumbIds[position]);  
        viewTag.mIcon.setLayoutParams(params);  
        return convertView;  
        
	}
	
	class ItemViewTag  
    {  
        protected ImageView mIcon;  
        protected TextView mName;  
          
        /** 
         * The constructor to construct a navigation view tag 
         *  
         * @param name 
         *            the name view of the item 
         * @param size 
         *            the size view of the item 
         * @param icon 
         *            the icon view of the item 
         */  
        public ItemViewTag(ImageView icon, TextView name)  
        {  
            this.mName = name;  
            this.mIcon = icon;  
        }  
    }  

}

分享到:
评论

相关推荐

    gridview动态添加item

    本篇文章将详细讲解如何实现"gridview动态添加item"的功能,以及在实现过程中可能会遇到的问题和解决方案。 首先,我们需要在XML布局文件中定义一个GridView,并设置其属性,如列数、间距等。例如: ```xml ...

    android gridview上图下字

    2. **`android:layout_width` 和 `android:layout_height`**: 指定`GridView`的宽度和高度。 3. **`android:numColumns`**: 设置列的数量。当设置为`"auto_fit"`时,`GridView`会根据屏幕宽度自动调整列数。 4. **`...

    android GridView

    //cion和iconName的长度是相同的,这里任选其一都可以 for(int i=0;i&lt;icon.length;i++){ Map, Object&gt; map = new HashMap, Object&gt;(); map.put("image", icon[i]); map.put("text", iconName[i]); data_...

    gridview控件的使用(九宫式的的排列)

    ConfirmMessage - 弹出的确认框所显示的文字 4、每行复选框的全选与取消全选 在模板列的头模板处添加一个复选框,在模板列的项模板处添加一个复选框,然后设置控件的CheckboxAlls属性 CheckboxAllID - 模板列全选...

    Android:控件GridView的使用实例

    在运行应用后,GridView将显示一个由图片和文本组成的网格视图。 在实际开发中,除了SimpleAdapter,还可以使用BaseAdapter或自定义的Adapter类来实现更复杂的数据绑定。例如,如果每个Item需要更多的交互或动画...

    flutter_app::fire::fire::fire:本项目包括各种基本控件的使用(Text,TextField,Icon,Image,Listview,Gridview,Picker,Stepper,Dialog,Slider,Row,Appbar,Sizebox,BottomSheet,Chip,Dismissible,FlutterLogo,Check, Switch,TabBar,BottomNavigationBar,Sliver等),豆瓣电影,tubitv,每日一文,和天气,百姓生活,随

    各种基本控件的使用(Text,TextField,Icon,Image,ListView,GridView,Picker,Stepper,Dialog,Slider,Row,Appbar,SizeBox,BottomSheet,Chip,Dismissible,FlutterLogo,Check,Switch,TabBar,...

    非常简单清、清晰、明了的九宫格图标按钮的示例(android)

    2. **布局文件**:创建一个XML布局文件来定义每个单元格的外观,通常包含一个ImageView显示图标和一个TextView显示文字(如果需要的话)。 接下来,我们将详细介绍实现步骤: 1. **创建GridView**:在主布局文件中...

    android九宫格

    它通常由一个GridView控件实现,显示为3行3列的布局,用户可以点击每个小格子来触发不同的操作或跳转到相应的页面。下面将详细介绍如何在Android中创建一个功能完善的九宫格界面。 首先,我们需要了解Android中的...

    AndroidUI问题集注第二期[参照].pdf

    4. **使用GridView创建Icon和Text多控件布局** GridView可以方便地创建网格布局。在Adapter中,结合ImageView和TextView,可以创建每行包含图标和文字的布局。每个单元格的视图在`getView()`方法中进行定制。 5. *...

    如何让easyui gridview 宽度自适应窗口改变及fitColumns应用

    在开发Web应用时,UI框架EasyUI提供了一个强大的组件——GridView,它用于展示表格数据,具有丰富的功能和良好的用户体验。在某些场景下,我们希望GridView的宽度能够根据浏览器窗口的大小进行自适应调整,以便充分...

    101.android中listview的优化1

    这些优化技巧不仅适用于ListView,也适用于其他基于AdapterView的组件,如GridView和RecyclerView。在面试中,对于这样的问题,开发者需要具备扎实的理论基础和实践经验,以展示他们对Android性能优化的理解和能力。

    flutter 开发者帮助 APP,包含 flutter 常用 140+ 组件的demo 演示与中文文档

    例如,`Container`用于包裹和定位其他组件,`Text`用于显示文本,`Button`则是用户交互的关键元素,`Icon`用于展示图标,`ListView`和`GridView`用于展示列表和网格数据,`AppBar`和`BottomNavigationBar`则是常见的...

    flutter_widgets.zip

    此外,还有许多其他的Widget,如`ListView`和`GridView`用于滚动列表和网格视图,`AppBar`和`Drawer`用于构建导航栏和抽屉菜单,`Icon`和`Image`用于显示图标和图片,`Checkbox`、`Radio`和`Slider`用于用户输入等。...

    android_ListView优化

    在Android开发中,ListView是一...同时,这些优化方法也适用于其他类似的列表组件,如GridView和RecyclerView。总之,优化ListView的关键在于合理利用View的复用机制,减少不必要的资源消耗,从而提供更好的用户体验。

    【Flutter】ExpansionTile 可折叠列表.zip

    在实际应用中,`ExpansionTile` 经常与其他 Flutter 组件结合使用,如 `ListView` 或 ` GridView`,以构建动态和交互式的内容列表。同时,你还可以根据需要组合多个 `ExpansionTile` 实例,形成嵌套的折叠结构。 ...

    针对Flutter的完全初学者让他们熟悉Flutter中的各种基本小部件

    `Container`用于设置大小、颜色、边框等属性,`Text`用于展示文本,`Image`则用于加载和显示图片。 2. **布局小部件**: - `Row`和`Column`:用于水平和垂直布局,可以将子小部件按照指定方向排列。 - `Flex`和`...

    android基础控件使用

    - `ListView`用于显示一系列可滚动的项目,常与`ArrayAdapter`或`CursorAdapter`配合使用: ```xml android:id="@+id/list_view" /&gt; ``` 8. **网格视图(GridView)** - `GridView`呈现二维列表,每个项目占据...

    星座12宫格实现

    - 在XML布局文件中添加GridView,并设置其属性,如`android:numColumns="3"`来规定每行显示3个宫格,`android:verticalSpacing`和`android:horizontalSpacing`调整单元格之间的间距。 ```xml &lt;GridView android:...

    CheckableTextView.zip

    在这个例子中,`@drawable/checked_icon`是选中状态时显示的图标,你可以根据自己的需求替换为相应的资源。`android:checked`属性设为`true`表示默认选中。 在代码中,可以通过以下方式操作`CheckableTextView`: ...

Global site tag (gtag.js) - Google Analytics