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]);
}
}