使用ViewSwitcher和ViewFlipper在不同布局中切换
2011-11-02 15:21
369 查看
很简单,废话不多说,直接贴代码:
xml布局:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<ViewSwitcher
android:id="@+id/switcher"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:inAnimation="@anim/slide_in_top"
android:outAnimation="@anim/slide_out_bottom" >
<RelativeLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
<TextView
android:layout_width="fill_parent"
android:layout_height="100dp"
android:background="#123456"
android:text="11111111"
android:textSize="32sp" >
</TextView>
</RelativeLayout>
<RelativeLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
<TextView
android:layout_width="fill_parent"
android:layout_height="100dp"
android:background="#FFFFFFFF"
android:text="22222222"
android:textSize="32sp" >
</TextView>
</RelativeLayout>
</ViewSwitcher>
<Button
android:id="@+id/prev"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="prev" />
<Button
android:id="@+id/next"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="next" />
</LinearLayout>
自定义的动画,也可以用系统自带的,在@android:anim/目录:
slide_in_top.xml
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" >
<translate
android:duration="2000"
android:fromYDelta="-100%p"
android:toYDelta="0" />
</set>
slide_in_bottom.xml
Java代码:
package com.arnold.activity;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.ViewSwitcher;
public class MainActivity extends Activity {
/** Called when the activity is first created. */
private ViewSwitcher mSwitcher;
private Button btn_prev, btn_next;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
mSwitcher = (ViewSwitcher) findViewById(R.id.switcher);
mSwitcher.setDisplayedChild(0);
btn_next = (Button) findViewById(R.id.next);
btn_prev = (Button) findViewById(R.id.prev);
btn_next.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mSwitcher.showNext();
}
});
btn_prev.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mSwitcher.showPrevious();
}
});
}
}
注意:ViewSwitcher只可以在两种布局中切换,ViewFlipper可以应用多种布局,用法基本一样但后者多出几个方法:
isFlipping:用来判断View切换是否正在进行
setFilpInterval:设置View之间切换的时间间隔
startFlipping:使用上面设置的时间间隔来开始切换所有的View,切换会循环进行
stopFlipping:停止View切换
xml布局:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<ViewSwitcher
android:id="@+id/switcher"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:inAnimation="@anim/slide_in_top"
android:outAnimation="@anim/slide_out_bottom" >
<RelativeLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
<TextView
android:layout_width="fill_parent"
android:layout_height="100dp"
android:background="#123456"
android:text="11111111"
android:textSize="32sp" >
</TextView>
</RelativeLayout>
<RelativeLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
<TextView
android:layout_width="fill_parent"
android:layout_height="100dp"
android:background="#FFFFFFFF"
android:text="22222222"
android:textSize="32sp" >
</TextView>
</RelativeLayout>
</ViewSwitcher>
<Button
android:id="@+id/prev"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="prev" />
<Button
android:id="@+id/next"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="next" />
</LinearLayout>
自定义的动画,也可以用系统自带的,在@android:anim/目录:
slide_in_top.xml
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" >
<translate
android:duration="2000"
android:fromYDelta="-100%p"
android:toYDelta="0" />
</set>
slide_in_bottom.xml
<?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android" > <translate android:duration="2000" android:fromYDelta="0" android:toYDelta="100%p" /> </set>
Java代码:
package com.arnold.activity;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.ViewSwitcher;
public class MainActivity extends Activity {
/** Called when the activity is first created. */
private ViewSwitcher mSwitcher;
private Button btn_prev, btn_next;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
mSwitcher = (ViewSwitcher) findViewById(R.id.switcher);
mSwitcher.setDisplayedChild(0);
btn_next = (Button) findViewById(R.id.next);
btn_prev = (Button) findViewById(R.id.prev);
btn_next.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mSwitcher.showNext();
}
});
btn_prev.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mSwitcher.showPrevious();
}
});
}
}
注意:ViewSwitcher只可以在两种布局中切换,ViewFlipper可以应用多种布局,用法基本一样但后者多出几个方法:
isFlipping:用来判断View切换是否正在进行
setFilpInterval:设置View之间切换的时间间隔
startFlipping:使用上面设置的时间间隔来开始切换所有的View,切换会循环进行
stopFlipping:停止View切换
相关文章推荐
- 使用ViewSwitcher和ViewFlipper在不同布局中切换
- 使用ViewSwitcher和ViewFlipper在不同布局中切换
- 使用ViewSwitcher和ViewFlipper在不同布局中切换
- Android开发中ViewFlipper和ViewSwitcher使用GestureDetector完成切换
- Android中使用ViewFlipper实现屏幕切换
- 使用RecyclerView结合jiaozivideoplayer去加载不同类型的布局
- 【从头学android】使用setContentView(View)替换setContentView(int),这样切换布局就可以保留切换前的状态啦
- Android使用ViewFlipper做页面切换,与手势滑动切换的使用
- Android中的手势切换——使用ViewFlipper
- 使用RecycleView加载不同的布局(类似淘宝京东购物车+推荐商品列表)
- android Listview的getView和convertview原理解析以及使用不同的item布局(二)
- android使用ViewSwitcher实现视图切换
- 滑动实现多个布局的切换——ViewPager的使用
- 在ViewFlipper中使用Rotate3dAnimation旋转切换界面效果
- 使用ViewPager和布局文件完成滑动切换
- Android中ListView使用getItemViewType为item设置不同的布局
- Android布局TextView文字设置不同样式Spannable的使用
- Android成长日记-使用ViewFlipper实现屏幕切换动画效果
- 使用RecyclerView实现两种不同Item布局
- ViewFlipper的使用---自动播放(轮播图)的实现以及多个view进行切换