package com.isomobile.widgets;
import android.app.ActivityGroup;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.animation.Animation;
import android.widget.Button;
import android.widget.RelativeLayout;
public class MainActivity extends ActivityGroup implements View.OnClickListener {
private final static Class<?>[] sActivityClasses = {
Activity1.class, Activity2.class, Activity3.class, Activity4.class, Activity5.class
};
private final static int[] sResIds = {
R.id.btn1, R.id.btn2, R.id.btn3, R.id.btn4, R.id.btn5
};
private final static String[] sActivityIds = {
"Activity1", "Activity2", "Activity3", "Activity4", "Activity5"
};
private RelativeLayout mViewContainer;
private Button[] mBtns = new Button[sResIds.length];
private View mPreView;
private View[] mCurView = new View[sResIds.length];
private int mCurId = 0;
private int mPreBtnPos, mCurBtnPos = 0;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
setupViews();
}
private void setupViews() {
mViewContainer = (RelativeLayout) findViewById(R.id.container);
final Button[] btns = mBtns;
for (int i = 0; i < btns.length; i++) {
btns[i] = (Button) findViewById(sResIds[i]);
btns[i].setOnClickListener(this);
}
//第一次启动时,默认跳转到第一个activity
mCurView[0] = getLocalActivityManager().startActivity(
sActivityIds[0],
new Intent(MainActivity.this, sActivityClasses[0])
.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)).getDecorView();
mViewContainer.addView(mCurView[0]);
mPreView = mCurView[0];
mPreBtnPos = 0;
}
@Override
public void onClick(View v) {
final int id = v.getId();
if (mCurId == id) {
return;
}
mCurId = id;
processViews(id);
onRotateAnimation(getCurButtonIndex(id));
}
private void processViews(int rid) {
mViewContainer.removeAllViews();
mCurBtnPos = getCurButtonIndex(rid);
mCurView[mCurBtnPos] = getLocalActivityManager().startActivity(
sActivityIds[mCurBtnPos],
new Intent(this, sActivityClasses[mCurBtnPos])
.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)).getDecorView();
mViewContainer.addView(mCurView[mCurBtnPos]);
}
private int getCurButtonIndex(int rid) {
final int length = sResIds.length;
for (int i = 0; i < length; i++) {
if (rid == sResIds[i]) {
return i;
}
}
return 0;
}
public void onRotateAnimation(int index) {
if (mPreBtnPos > mCurBtnPos) {
Rotate3d.rightRotate(mPreView, mCurView[index], 240, 0, 300, new AnimListener());
} else {
Rotate3d.leftRotate(mPreView, mCurView[index], 240, 0, 300, new AnimListener());
}
mPreView = mCurView[index];
mViewContainer.removeAllViews();
mViewContainer.addView(mCurView[index]);
mPreBtnPos = mCurBtnPos;
}
private class AnimListener implements Animation.AnimationListener {
public void onAnimationEnd(Animation animation) {
//可以设置buttons的背景或者状态(是否可点击等)
}
public void onAnimationRepeat(Animation animation) {
}
public void onAnimationStart(Animation animation) {
//可以设置buttons的背景或者状态(是否可点击等)
}
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
多个button互相切换view<实例二3D切换>
共43个文件
class:15个
java:9个
xml:9个
4星 · 超过85%的资源 需积分: 9 153 下载量 154 浏览量
2011-09-21
22:43:22
上传
评论 1
收藏 60KB RAR 举报
温馨提示
代码精简,结构清晰,使用了include标签,希望对大家有帮助;另外实现了3D旋转动画。
资源推荐
资源详情
资源评论
收起资源包目录
buttons_switcher_V2.rar (43个子文件)
buttons_switcher
.project 852B
default.properties 362B
bin
buttons_switcher.apk 20KB
com
isomobile
widgets
R$string.class 436B
R$layout.class 641B
MainActivity.class 4KB
R$drawable.class 409B
Activity1.class 514B
Activity3.class 514B
Activity4.class 514B
R.class 552B
Activity2.class 514B
Activity5.class 514B
Rotate3d.class 2KB
Animation3d.class 2KB
R$attr.class 349B
MainActivity$AnimListener.class 1KB
R$id.class 536B
resources.ap_ 14KB
classes.dex 9KB
proguard.cfg 1KB
AndroidManifest.xml 2KB
src
com
isomobile
widgets
Activity1.java 318B
Activity3.java 316B
Activity4.java 316B
Activity2.java 316B
Activity5.java 316B
MainActivity.java 4KB
Animation3d.java 2KB
Rotate3d.java 2KB
res
values
strings.xml 179B
layout
activity5_layout.xml 411B
bottom_buttons.xml 2KB
activity3_layout.xml 411B
activity4_layout.xml 411B
main.xml 473B
activity1_layout.xml 411B
activity2_layout.xml 411B
drawable-ldpi
icon.png 2KB
drawable-hdpi
icon.png 4KB
drawable-mdpi
icon.png 3KB
.classpath 280B
gen
com
isomobile
widgets
R.java 1KB
assets
共 43 条
- 1
赵小刚
- 粉丝: 519
- 资源: 9
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
- 1
- 2
前往页