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"的功能,以及在实现过程中可能会遇到的问题和解决方案。 首先,我们需要在XML布局文件中定义一个GridView,并设置其属性,如列数、间距等。例如: ```xml ...
2. **`android:layout_width` 和 `android:layout_height`**: 指定`GridView`的宽度和高度。 3. **`android:numColumns`**: 设置列的数量。当设置为`"auto_fit"`时,`GridView`会根据屏幕宽度自动调整列数。 4. **`...
//cion和iconName的长度是相同的,这里任选其一都可以 for(int i=0;i<icon.length;i++){ Map, Object> map = new HashMap, Object>(); map.put("image", icon[i]); map.put("text", iconName[i]); data_...
ConfirmMessage - 弹出的确认框所显示的文字 4、每行复选框的全选与取消全选 在模板列的头模板处添加一个复选框,在模板列的项模板处添加一个复选框,然后设置控件的CheckboxAlls属性 CheckboxAllID - 模板列全选...
在运行应用后,GridView将显示一个由图片和文本组成的网格视图。 在实际开发中,除了SimpleAdapter,还可以使用BaseAdapter或自定义的Adapter类来实现更复杂的数据绑定。例如,如果每个Item需要更多的交互或动画...
各种基本控件的使用(Text,TextField,Icon,Image,ListView,GridView,Picker,Stepper,Dialog,Slider,Row,Appbar,SizeBox,BottomSheet,Chip,Dismissible,FlutterLogo,Check,Switch,TabBar,...
2. **布局文件**:创建一个XML布局文件来定义每个单元格的外观,通常包含一个ImageView显示图标和一个TextView显示文字(如果需要的话)。 接下来,我们将详细介绍实现步骤: 1. **创建GridView**:在主布局文件中...
它通常由一个GridView控件实现,显示为3行3列的布局,用户可以点击每个小格子来触发不同的操作或跳转到相应的页面。下面将详细介绍如何在Android中创建一个功能完善的九宫格界面。 首先,我们需要了解Android中的...
4. **使用GridView创建Icon和Text多控件布局** GridView可以方便地创建网格布局。在Adapter中,结合ImageView和TextView,可以创建每行包含图标和文字的布局。每个单元格的视图在`getView()`方法中进行定制。 5. *...
在开发Web应用时,UI框架EasyUI提供了一个强大的组件——GridView,它用于展示表格数据,具有丰富的功能和良好的用户体验。在某些场景下,我们希望GridView的宽度能够根据浏览器窗口的大小进行自适应调整,以便充分...
这些优化技巧不仅适用于ListView,也适用于其他基于AdapterView的组件,如GridView和RecyclerView。在面试中,对于这样的问题,开发者需要具备扎实的理论基础和实践经验,以展示他们对Android性能优化的理解和能力。
例如,`Container`用于包裹和定位其他组件,`Text`用于显示文本,`Button`则是用户交互的关键元素,`Icon`用于展示图标,`ListView`和`GridView`用于展示列表和网格数据,`AppBar`和`BottomNavigationBar`则是常见的...
此外,还有许多其他的Widget,如`ListView`和`GridView`用于滚动列表和网格视图,`AppBar`和`Drawer`用于构建导航栏和抽屉菜单,`Icon`和`Image`用于显示图标和图片,`Checkbox`、`Radio`和`Slider`用于用户输入等。...
在Android开发中,ListView是一...同时,这些优化方法也适用于其他类似的列表组件,如GridView和RecyclerView。总之,优化ListView的关键在于合理利用View的复用机制,减少不必要的资源消耗,从而提供更好的用户体验。
在实际应用中,`ExpansionTile` 经常与其他 Flutter 组件结合使用,如 `ListView` 或 ` GridView`,以构建动态和交互式的内容列表。同时,你还可以根据需要组合多个 `ExpansionTile` 实例,形成嵌套的折叠结构。 ...
`Container`用于设置大小、颜色、边框等属性,`Text`用于展示文本,`Image`则用于加载和显示图片。 2. **布局小部件**: - `Row`和`Column`:用于水平和垂直布局,可以将子小部件按照指定方向排列。 - `Flex`和`...
- `ListView`用于显示一系列可滚动的项目,常与`ArrayAdapter`或`CursorAdapter`配合使用: ```xml android:id="@+id/list_view" /> ``` 8. **网格视图(GridView)** - `GridView`呈现二维列表,每个项目占据...
- 在XML布局文件中添加GridView,并设置其属性,如`android:numColumns="3"`来规定每行显示3个宫格,`android:verticalSpacing`和`android:horizontalSpacing`调整单元格之间的间距。 ```xml <GridView android:...
在这个例子中,`@drawable/checked_icon`是选中状态时显示的图标,你可以根据自己的需求替换为相应的资源。`android:checked`属性设为`true`表示默认选中。 在代码中,可以通过以下方式操作`CheckableTextView`: ...