package com.example.tiantian.activitys;

import com.example.tiantian.R;
import com.example.tiantian.alarm.ClockActivity;
import com.example.tiantian.battery.BatteryActivty;
import com.example.tiantian.phonespeed.DriverActivity;
import com.example.tiantian.softmanagement.SoftManagementActivity;
import com.example.tiantian.takepickures.PhotoGraphActivity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.View.OnLongClickListener;
import android.widget.ImageView;
import android.widget.TextView;

public class MenuActivity extends BaseActivity implements OnClickListener,
  OnLongClickListener {
 // 定义未选中图标
 int[] draw0 = { R.drawable.menu_icon_0_0, R.drawable.menu_icon_1_0,
   R.drawable.menu_icon_2_0, R.drawable.menu_icon_3_0,
   R.drawable.menu_icon_4_0, R.drawable.menu_icon_5_0 };
 // 定义选中图标
 int[] draw1 = { R.drawable.menu_icon_0_1, R.drawable.menu_icon_1_1,
   R.drawable.menu_icon_2_1, R.drawable.menu_icon_3_1,
   R.drawable.menu_icon_4_1, R.drawable.menu_icon_5_1 };

 String[] string = { "通讯录", "软件管家", "硬件加速", "电池管理", "闹钟", "照相机" };

 TextView text;// 文本提示
 ImageView teleLine;// 通讯录
 ImageView batterLine;// 电池管理
 ImageView cameraLine;// 照相机
 ImageView softLine;// 软件管理
 ImageView hardLine;// 硬件加速
 ImageView clockLine;// 闹钟
 ImageView temp;//
 int s;
 ImageView Zview;
 int Wid;

 @Override
 protected void onCreate(Bundle savedInstanceState) {
  // TODO Auto-generated method stub
  super.onCreate(savedInstanceState);
  setContentView(R.layout.mainmenu);
  teleLine = (ImageView) findViewById(R.id.imageView_main0);
  softLine = (ImageView) findViewById(R.id.imageView_main1);
  hardLine = (ImageView) findViewById(R.id.imageView_main2);
  batterLine = (ImageView) findViewById(R.id.imageView_main3);
  clockLine = (ImageView) findViewById(R.id.imageView_main4);
  cameraLine = (ImageView) findViewById(R.id.imageView_main5);
  text = (TextView) findViewById(R.id.tvdisplay);
  // 设点击监听
  teleLine.setOnClickListener(this);
  softLine.setOnClickListener(this);
  hardLine.setOnClickListener(this);
  batterLine.setOnClickListener(this);
  clockLine.setOnClickListener(this);
  cameraLine.setOnClickListener(this);
  // 设置长按监听
  teleLine.setOnLongClickListener(this);
  softLine.setOnLongClickListener(this);
  hardLine.setOnLongClickListener(this);
  batterLine.setOnLongClickListener(this);
  clockLine.setOnLongClickListener(this);
  cameraLine.setOnLongClickListener(this);

 }

 @Override
 public boolean onLongClick(View v) {
  Intent intent = new Intent();
  switch (v.getId()) {
  case R.id.imageView_main5://相机
   relSel(cameraLine, 5);
   intent.setClass(MenuActivity.this, PhotoGraphActivity.class);
   startActivity(intent);
   return true;

  case R.id.imageView_main0://通讯录
   relSel(teleLine,0);
   return true;

  case R.id.imageView_main1://软件管理
   relSel(softLine,1);
   intent.setClass(MenuActivity.this, SoftManagementActivity.class);
   startActivity(intent);
   return true;

  case R.id.imageView_main2://硬件管理 
   relSel(hardLine,2);
   intent.setClass(MenuActivity.this, DriverActivity.class);
   startActivity(intent);
   return true;

  case R.id.imageView_main3://电池管理
   relSel(batterLine,3);
   intent.setClass(MenuActivity.this, BatteryActivty.class);
   startActivity(intent);
   return true;

  case R.id.imageView_main4://闹钟
   relSel(clockLine,4);
   intent.setClass(MenuActivity.this, ClockActivity.class);
   startActivity(intent);
   return true;

  default:
   break;

  }
  return false;
 }

 /**
  * 当第一次点击图标时,relSel是null,不执行if语句,分别把点击的图标id 和对象分别复给一个临时变量,
  * 并给当前选中的图片设置带边的图片和文本信息;再点击图标时,zview中有值不为空,并且是之前点击图片存的那个值,就把之前点击的
  * 图标切回原始状态图片,id是临时存的那个变量中,执行完后,把当前传过来的图标,和id
  * 再一次复给临时变量,并给当前图标设置对应的带边图标和对应文本内容
  */
 private void relSel(ImageView view2, int i) {
  if (Zview != null) {
   Zview.setImageResource(draw0[Wid]);
  }

  Wid = i;
  Zview = view2;
  Zview.setImageResource(draw1[Wid]);
  text.setText(string[Wid]);

 }

 // 对每一个组件进行监听,实现换图片和显示文本名子
 @Override
 public void onClick(View v) {
  switch (v.getId()) {
  case R.id.imageView_main0:
   set(0, teleLine);
   break;
  case R.id.imageView_main1:
   set(1, softLine);
   break;
  case R.id.imageView_main2:
   set(2, hardLine);
   break;
  case R.id.imageView_main3:
   set(3, batterLine);
   break;
  case R.id.imageView_main4:
   set(4, clockLine);
   break;
  case R.id.imageView_main5:
   set(5, cameraLine);
   break;
  default:
   break;

  }
 }

 // 实现换图片和显示文本的效果
 public void set(int i, ImageView image) {

  if (temp != null) {
   temp.setImageResource(draw0[s]);// 第一次执行的时候,temp为空,当第二次执行,temp值为前一个图片的值,这句是为前一个图片设置没边的图片,还原回去。
  }
  s = i;// 如果第一次时temp值为空,不执行上面的语句,把数组下标i,赋值给临时变量s.
  temp = image;// 把第一次点的图片先放在临时变量中,方便下一次点击时,给之前的图片恢复原值。
  temp.setImageResource(draw1[s]);// 显示选中的那张图片,对应的图片为选中图片
  text.setText(string[s]);
 }

}

更多相关文章

  1. android 编译错误解决方法(一)
  2. Android(安卓)照片墙功能实现
  3. android 图片渐变处理
  4. 制作TextView的倒影
  5. 【Xutils-框架 BitmapUtils】解析!!!!!!!!!!!!!!!!!!!!!!!!
  6. 图片 缓存
  7. 开源项目Universal Image Loader for Android(安卓)说明文档 (1)
  8. Android可控图片旋转
  9. android 加载大图的原理和实现

随机推荐

  1. 分析ARM ANDROID市场及技术结合点 转载
  2. 以后要是再写for循环,我就捶自己
  3. HTML5/CSS3 实现漂亮的 3D 滑杆插件
  4. jQuery/CSS3邮票边框的照片墙相册
  5. 2020开年,C语言重回巅峰王座!
  6. Android界面绘制_canvas解析
  7. HTML5图片水面倒影和波纹动画,超逼真
  8. 解决 android 输入法弹出输入框被遮挡的
  9. 只因少写一个判空,我的代码上线后炸了!
  10. 【译】用 React 和 D3 创建图表