ViewSwitcher 的作用简单来说就是:在两个视图间转换时显示动画
它的两个子类应该很熟悉,ImageSwitcher:转换图片时增加动画效果;TextSwitcher:转换文字时增加动画效果;其实例见apidemos中ImageSwitcher实例和TextSwitcher实例
但不要忽略ViewSwicher,在一些场合还是很有用的
在android里视图切换是一个很常见的需求,比如说加载view和后台背景,当后台加载数据时,loding view显示,数据View隐藏,加载完成,反向此过程。使用ViewSwicher提供了简单的逻辑,产生更可读的代码。
================ 实例:异步获取网络信息时候的等待切换效果
<?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:background="@color/listcolor"
android:orientation="vertical" >
<include layout="@layout/header_bar"/>
<FrameLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<ViewSwitcher
android:id="@+id/viewswitcher_news_top"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="center" >
</ViewSwitcher>
<ListView
android:id="@+id/favorite_list"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:cacheColorHint="@color/transparent"
android:divider="@drawable/tip_line" />
</FrameLayout>
</LinearLayout>
private ViewSwitcher viewSwitcher;
...
viewSwitcher = (ViewSwitcher) findViewById(R.id.viewswitcher_news_top);
viewSwitcher.addView(getLayoutInflater().inflate(
R.layout.layout_progress_page, null));
...
private void requestData() {
viewSwitcher.setVisibility(View.VISIBLE);
viewSwitcher.showNext();
Thread t = new Thread() {
...
Handler handler = new Handler() {
public void handleMessage(android.os.Message msg) {
if (msg.what == 1) {
mAdapter = new ItemAdapter();
mList.setAdapter(mAdapter);
mList.setOnItemClickListener(listener);
}
viewSwitcher.setVisibility(View.INVISIBLE);
};
};
=================== 可见状态
View缺省为可见的,在应用可以通过setVisibility 修改View的可见性,View可用性可以有如下三种状态:
- View.VISIBLE View可见
- View.INVISIBLE View不可以见,但仍然占据可见时的大小和位置。
- View.GONE View不可见,且不占据空间。
本例使用三个按钮来修改View B的可见性:
OnClickListener mVisibleListener = new OnClickListener() {
public void onClick(View v) {
mVictim.setVisibility(View.VISIBLE);
}
};
OnClickListener mInvisibleListener = new OnClickListener() {
public void onClick(View v) {
mVictim.setVisibility(View.INVISIBLE);
}
};
OnClickListener mGoneListener = new OnClickListener() {
public void onClick(View v) {
mVictim.setVisibility(View.GONE);
}
};
相关推荐
1. **Transition Animation**:当Activity或Fragment之间切换时,可以使用Transition API来定义过渡动画,使两个视图之间的转换更加自然。 2. **ViewFlipper和ViewSwitcher**:这两个是Android提供的内置组件,可以...
通过自定义这些组件的`inAnimation`和`outAnimation`,可以实现两个视图之间的平滑过渡。例如,可以设置一个视图在消失时向左平移并缩小,同时另一个视图从右侧以相反的动画进入,模拟出3D翻页效果。 3. **组合动画...
3. **ViewFlipper与ViewSwitcher**: 这是Android提供的两个布局组件,可以用来实现视图之间的切换,结合动画可以实现简单的3D翻转效果。 4. **SurfaceView与TextureView**: SurfaceView和TextureView是Android中...
4. **ViewFlipper和ViewSwitcher**:这两个视图切换组件可以在用户交互后切换显示的视图,可以用于实现相册页面的翻转效果。但要注意,它们默认只支持2D转换,若要实现3D效果,需要自定义动画。 5. **CardView和...
- `ViewSwitcher`是Android中的一个动画视图容器,它可以切换两个子视图,并在切换过程中提供动画效果。在示例中,`ImageSwitcher`可能用于连续显示从PC接收的图片。 - `AnimationUtils.loadAnimation()`可以加载...
在Android中,有两种主要类型的动画:补间动画(Tween Animation)和帧动画(Frame Animation)。补间动画用于改变视图的属性,如位置、大小、透明度等,而帧动画则类似于电影胶片,显示一系列静态图像来形成连续...
ImageSwitcher是Android SDK中的一个视图类,它继承自ViewSwitcher,主要用于在两个视图之间进行平滑过渡。通常用于显示连续变化的图像,如广告轮播或图片展示。ImageSwitcher提供了自动切换和手动切换两种方式。在...
`ImageSwitcher`是Android中一个非常有用的视图切换器,它主要用于在两个图像之间平滑地切换,常用于实现图片预览或者动态更换图片的效果。`ImageSwitcher`继承自`ViewSwitcher`,并且添加了自动管理`ImageView`子...
`ViewSwitcher`是Android自带的一个视图切换器,可以用于在两个视图之间切换,而`TestImageSwitcher`可能是对其进行了定制以适应图片浏览的需求。 3. **手势识别**:为了增强交互性,图片浏览器往往支持捏合缩放、...
这种布局设计允许我们方便地在两个视图之间切换。 为了实现3D翻页效果,我们需要使用Android的动画系统。在Android中,可以使用`Animation`类及其子类(如`AlphaAnimation`、`ScaleAnimation`、`TranslateAnimation...
ImageSwitcher是ViewSwitcher类的一个子类,主要用于在两个ImageView之间进行切换,通常用于实现图片轮播或动画效果。通过查看源码,我们可以学习如何设置监听器,动态加载图片,以及如何平滑地在不同图片之间切换。...