目标效果:
在上一个的导航基础上,导航过后进入了主页面,手指向右滑动或者点击左上角的菜单图标,可以显示菜单侧栏,点击某一项可以吐司信息。
素材包:点击打开链接
1.素材包中有个SlideMenu.java页面,新建包并保存该包中。
2.新建leftmenu.xml页面,用于存储侧滑菜单的控件信息。
leftmenu.xml页面:
登录
Settings
Hello world!
忘记密码
请输入用户名
请输入密码
登录
注册
RegisterActivity
LoginActivity
账号
昵称
密码
座右铭(不多于8个字)
邮箱(**@**.com)
城市
步长(cm)
身高(cm)
体重(kg)
希望运动量(步/日)
终于填完资料了,马上点击注册吧!
注册
WelcomeActivity
GuidActivity
GiudeActivity
- 用户登录
- 运动测试
- 个人信息
- 行程记录
- 天气查询
- 健康栏目
- 软件设置
package com.example.login;
public class Item {
private int id;
private String name;
public Item(int id,String name){
this.id=id;
this.name=name;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
package com.example.login;
import java.util.List;
import com.example.login.R;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.ImageView;
import android.widget.TextView;
public class itemAdapter extends ArrayAdapter- { // 适配器,泛型表示想要适配的数据类型
private int resourceId;
public itemAdapter(Context context, int textViewResourceId,
List
- objects) { // 第一个参数是上下文环境,第二个参数是每一项的子布局,第三个参数是数据
super(context, textViewResourceId, objects);
resourceId = textViewResourceId; //获取子布局
}
@Override //getView方法在每个子项被滚动到屏幕内的时候都会被调用,每次都将布局重新加载一边
public View getView(int position, View convertView, ViewGroup parent) {//第一个参数表示位置,第二个参数表示缓存布局,第三个表示绑定的view对象
View view;
ViewHolder viewHolder; //实例ViewHolder,当程序第一次运行,保存获取到的控件,提高效率
if(convertView==null){
viewHolder=new ViewHolder();
view = LayoutInflater.from(getContext()).inflate(//convertView为空代表布局没有被加载过,即getView方法没有被调用过,需要创建
resourceId, null); // 得到子布局,非固定的,和子布局id有关
viewHolder.ivImage = (ImageView) view.findViewById(R.id.ivImage);//获取控件,只需要调用一遍,调用过后保存在ViewHolder中
viewHolder.tvName = (TextView) view.findViewById(R.id.tvName); //获取控件
view.setTag(viewHolder);
}else{
view=convertView; //convertView不为空代表布局被加载过,只需要将convertView的值取出即可
viewHolder=(ViewHolder) view.getTag();
}
Item item = getItem(position);//实例指定位置的水果
viewHolder.ivImage.setImageResource(item.getId());//获得指定位置水果的id
viewHolder.tvName.setText(item.getName()); //获得指定位置水果的名字
return view;
}
}
class ViewHolder{ //当布局加载过后,保存获取到的控件信息。
ImageView ivImage;
TextView tvName;
}
package com.example.login;
import java.util.ArrayList;
import java.util.List;
import com.example.walkersimulate.util.SlideMenu;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.Window;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.Toast;
public class MainActivity extends Activity {
private SlideMenu slideMenu;
private ImageView ivSwitchSlideMenu;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.activity_main);
initMenuList();
slideMenu = (SlideMenu) findViewById(R.id.slideMenu);
ivSwitchSlideMenu = (ImageView) findViewById(R.id.switch_slidemenu);
ivSwitchSlideMenu.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View view) {
if (slideMenu.isMainScreenShowing()) {// 判断滑动菜单是否已打开,如果未打开
slideMenu.openMenu(); // 打开滑动菜单
} else {
slideMenu.closeMenu();// 关闭滑动菜单
}
}
});
}
private void initMenuList() {
/*设置数据源(图片和文本信息)*/
int[] icons = { R.drawable.icons_menu_login,
R.drawable.icons_menu_sport, R.drawable.icons_menu_inform,
R.drawable.icons_menu_history, R.drawable.icons_menu_weather,
R.drawable.icons_menu_health, R.drawable.icons_menu_setting };
final String[] introductons = getResources().getStringArray(
R.array.menulist);
/*实例列表*/
List- items = new ArrayList
- ();
/*向列表中添加图片和对应的文本信息*/
for (int i = 0; i < icons.length; i++) {
items.add(new Item(icons[i], introductons[i]));
}
ListView lvMenuList = (ListView) findViewById(R.id.lvMenuList);
/*创建适配器*/
itemAdapter adapter = new itemAdapter(this, R.layout.menulist_item,
items);
/*配置适配器*/
lvMenuList.setAdapter(adapter);
/*列表某一项的点击事件*/
lvMenuList.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView> adapterView, View view,
int position, long id) {
Toast.makeText(MainActivity.this,
"你点击了" + introductons[position], Toast.LENGTH_SHORT)
.show();
}
});
}
}
#333
#000
#ffffff
#fffff0
#ffffe0
#ffff00
#fffafa
#fffaf0
#fffacd
#fff8dc
#fff5ee
#fff0f5
#ffefd5
#ffebcd
#ffe4e1
#ffe4c4
#ffe4b5
#ffdead
#ffdab9
#ffd700
#ffc0cb
#ffb6c1
#ffa500
#ffa07a
#ff8c00
#ff7f50
#ff69b4
#ff6347
#ff4500
#ff1493
#ff00ff
#ff00ff
#ff0000
#fdf5e6
#fafad2
#faf0e6
#faebd7
#fa8072
#f8f8ff
#f5fffa
#f5f5f5
#f5f5dc
#f5deb3
#f4a460
#f0ffff
#f0fff0
#f0f8ff
#f0e68c
#f08080
#eee8aa
#ee82ee
#e9967a
#e6e6fa
#e0ffff
#deb887
#dda0dd
#dcdcdc
#dc143c
#db7093
#daa520
#da70d6
#d8bfd8
#d3d3d3
#d3d3d3
#d2b48c
#d2691e
#cd853f
#cd5c5c
#c71585
#c0c0c0
#bdb76b
#bc8f8f
#ba55d3
#b8860b
#b22222
#b0e0e6
#b0c4de
#afeeee
#adff2f
#add8e6
#a9a9a9
#a9a9a9
#a52a2a
#a0522d
#9932cc
#98fb98
#9400d3
#9370db
#90ee90
#8fbc8f
#8b4513
#8b008b
#8b0000
#8a2be2
#87cefa
#87ceeb
#808080
#808080
#808000
#800080
#800000
#7fffd4
#7fff00
#7cfc00
#7b68ee
#778899
#778899
#708090
#708090
#6b8e23
#6a5acd
#696969
#696969
#66cdaa
#6495ed
#5f9ea0
#556b2f
#4b0082
#48d1cc
#483d8b
#4682b4
#4169e1
#40e0d0
#3cb371
#32cd32
#2f4f4f
#2f4f4f
#2e8b57
#228b22
#20b2aa
#1e90ff
#191970
#00ffff
#00ffff
#00ff7f
#00ff00
#00fa9a
#00ced1
#00bfff
#008b8b
#008080
#008000
#006400
#0000ff
#0000cd
#00008b
#000080
#000000
#00000000
#1b000000
#F7F9F8
#F7F7F7
#05000000