android入门——UI(4)
GridView控件实现菜单
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"> <GridView
android:id="@+id/grid_view_menu"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:numColumns="3"></GridView>
</LinearLayout>
gridview_index.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"> <ImageView
android:layout_width="50dp"
android:layout_height="50dp"
android:src="@mipmap/ic_launcher" /> <TextView
android:id="@+id/tv_menu"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="菜单" />
</LinearLayout>
item_grid.xml
先使用SimpleAdapter填充数据
package com.ouc.wkp.ui1; import android.app.Activity;
import android.os.Bundle;
import android.widget.GridView;
import android.widget.SimpleAdapter; import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map; /**
* Created by wkp on 2016/8/23.
*/
public class JustLook5 extends Activity{
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.gridview_index); GridView gridViewMenu=(GridView)findViewById(R.id.grid_view_menu); List<Map<String,String>> dataList=new ArrayList<>(); {
Map<String, String> map = new HashMap<>();
map.put("menu_name", "拉拉拉");
dataList.add(map);
} {
Map<String, String> map = new HashMap<>();
map.put("menu_name", "嘿嘿嘿");
dataList.add(map);
} {
Map<String, String> map = new HashMap<>();
map.put("menu_name", "劈劈劈");
dataList.add(map);
} {
Map<String, String> map = new HashMap<>();
map.put("menu_name", "啪啪啪");
dataList.add(map);
} {
Map<String, String> map = new HashMap<>();
map.put("menu_name", "biubiubiu");
dataList.add(map);
} String[] from={"menu_name"};
int[] to={R.id.tv_menu}; SimpleAdapter simpleAdapter=new SimpleAdapter(this,dataList,R.layout.item_grid,from,to);
gridViewMenu.setAdapter(simpleAdapter);
}
}
JustLook5.java
再使用BaseAdapter填充数据
package com.ouc.wkp.ui1; import android.app.Activity;
import android.media.Image;
import android.os.Bundle;
import android.view.LayoutInflater;;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.GridView;
import android.widget.ImageView;
import android.widget.SimpleAdapter;
import android.widget.TextView; import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map; /**
* Created by wkp on 2016/8/23.
*/
public class JustLook5 extends Activity { List<MenuItem2> dataList; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.gridview_index); GridView gridViewMenu = (GridView) findViewById(R.id.grid_view_menu); dataList = new ArrayList<>(); dataList.add(new MenuItem2("菜单1", R.drawable.menu1));
dataList.add(new MenuItem2("菜单2", R.drawable.menu2));
dataList.add(new MenuItem2("菜单3", R.drawable.menu3));
dataList.add(new MenuItem2("菜单4", R.drawable.menu4));
dataList.add(new MenuItem2("菜单5", R.drawable.menu5)); MenuAdapter menuAdapter = new MenuAdapter();
gridViewMenu.setAdapter(menuAdapter); // {
// Map<String, String> map = new HashMap<>();
// map.put("menu_name", "拉拉拉");
// dataList.add(map);
// }
//
// {
// Map<String, String> map = new HashMap<>();
// map.put("menu_name", "嘿嘿嘿");
// dataList.add(map);
// }
//
// String[] from={"menu_name"};
// int[] to={R.id.tv_menu};
//
// SimpleAdapter simpleAdapter=new SimpleAdapter(this,dataList,R.layout.item_grid,from,to);
// gridViewMenu.setAdapter(simpleAdapter);
} class MenuAdapter extends BaseAdapter { @Override
public int getCount() {
return dataList.size();
} @Override
public Object getItem(int i) {
return dataList.get(i);
} @Override
public long getItemId(int i) {
return i;
} @Override
public View getView(int i, View view, ViewGroup viewGroup) { View menuView = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.item_grid, null); TextView tvMenuName = (TextView) menuView.findViewById(R.id.tv_menu);
tvMenuName.setText(dataList.get(i).menuName); ImageView imageViewMenu = (ImageView) menuView.findViewById(R.id.image_menu);
imageViewMenu.setImageResource(dataList.get(i).menuDrawableId); return menuView;
}
} class MenuItem2 {
String menuName;
int menuDrawableId; MenuItem2(String menuName, int menuDrawableId) {
this.menuName = menuName;
this.menuDrawableId = menuDrawableId;
}
}
}
JustLook.java
效果如下

android入门——UI(4)的更多相关文章
- Android入门——UI(8)——Fragment(2)
先演示一下如何在一个activity中放置两个Fragment,先定义两个Fragment <?xml version="1.0" encoding="utf-8& ...
- Android入门——UI(9)
SwipRefreshLayout下拉刷新控件 <?xml version="1.0" encoding="utf-8"?> <android ...
- Android入门——UI(7)——Fragment
先上fragment静态加载的代码 <?xml version="1.0" encoding="utf-8"?> <LinearLayout ...
- android入门——UI(6)——ViewPager+Menu+PopupWindow
一.使用ViewPager开发新特性引导界面 <?xml version="1.0" encoding="utf-8"?> <Relative ...
- android入门——UI(5)
最近时间实在匆忙,博客的代码基本没有解释. 介绍ExpandableListView <?xml version="1.0" encoding="utf-8&quo ...
- android入门——UI(3)
Spinner控件 ListView控件 一.Spinner控件 点击Spinner会弹出一个包含所有可选值的dropdown菜单,从该菜单中可以为Spinner选择一个新值. 有两种指定数据源的 ...
- Android入门——UI(2)
介绍SeekBar拖动条控件.ProgressBar进度条控件.DatePicker日历控件.TimePicker时间控件 <?xml version="1.0" encod ...
- android入门——UI(1)
一.使用TextView ImageView Button EditView做出登录页面 <?xml version="1.0" encoding="utf-8&q ...
- 【详细】Android入门到放弃篇-YES OR NO-》各种UI组件,布局管理器,单元Activity
问:达叔,你放弃了吗? 答:不,放弃是不可能的,丢了Android,你会心疼吗?如果别人把你丢掉,你是痛苦呢?还是痛苦呢?~ 引导语 有人说,爱上一个人是痛苦的,有人说,喜欢一个人是幸福的. 人与人之 ...
随机推荐
- express4.0之后不会解析req.files,必须加一个插件multer
express 4 + 用multer express4.0之后不会解析req.files,必须加一个插件multer http://www.w3school.com.cn/tags/att_form ...
- ASP.NET MVC 学习之路-3
本文在于巩固基础 到这里不得不说ASP.NET MVC一个规则:惯例优先原则 ASP.NET会假定开发人员遵循特定的规则来构建自己的程序而不是使用配置文件 ASP.NET MVC文件夹结构也遵循惯例优 ...
- new String[0]的作用
返回包含此 collection 中所有元素的数组:返回数组的运行时类型与指定数组的运行时类型相同.如果指定的数组能容纳 该 collection,则返回包含此 collection 元素的数组.否则 ...
- 灵光一闪-VS设计界面能访问到private修饰的各种控件
大家都知道,用VS设计界面时,VS默认控件的访问修饰符为private,但是我就很奇怪,private修饰的字段不是只有类内部才能访问吗? 好神奇的VS,这到底是怎么实现的?难道就是类似文本编辑器的作 ...
- 从C++对象内存布局和构造过程来具体分析C++中的封装、继承、多态
一.封装模型的内存布局 常见类对象的成员可能包含以下元素: 内建类型.指针.引用.组合对象.虚函数. 另一个角度的分类: 数据成员:静态.非静态 成员函数:静态.非静态.虚函数 1.仅包含内建类型的场 ...
- Python进阶之函数式编程(把函数作为参数)
什么是函数式编程? 什么是函数式编程? 函数:function 函数式:functional,一种编程范式 函数式编程是一种抽象计算的编程模式 函数≠函数式,比如:计算≠计算机 在计算机当中,计算机硬 ...
- jquery插件anccordion
(function(){ $.fn.YAccordion=function(options){ var settings={ trigger:'click', speed:300, }; if(opt ...
- jquery的$().each,$.each的区别与应用
在jquery中,遍历对象和数组,经常会用到$().each和$.each(),两个方法.两个方法是有区别的,从而这两个方法在针对不同的操作上,显示了各自的特点. $().each,对于这个方法,在d ...
- Eclipse 修改编码格式
在Eclipse的开发使用中,我们经常使用的是UTF-8,但是刚刚安装的或者是导入的项目是其他编码的默认是GBK的,这就造成我们的项目乱码,一些中文解析无法查看,对我们的开发造成不便. 修改工作空间默 ...
- Scala写排序可以说是简洁又明了
例如归并排序,清晰明了. object MergeSort extends App { val oldList = List[Int](12, 40, 26, 89, 75, 44, 32, ...