Android_UI:ViewAnimator ViewSwitcher TextSwitcher ImageSwicher StackView ViewFlipper AdapterViewFli
来源:互联网 发布:数据用英文怎么说 编辑:程序博客网 时间:2024/06/05 20:08
transition(过度)效果的控件
ViewAnimatorViewSwitcherTextSwitcherImageSwitcherStackViewViewFlipperAdapterViewFlipper
ViewSwitcher
+TextSwitcher
在前面已经介绍了
Android_UI:ImageView
Android_UI:TextView + TextLinkify + TextSwitcher
ViewSwitcher
在2个子View之间进行切换,只允许有2个view,添加这2个view的方法有2种addView()、通过ViewFactory添加。
<ViewSwitcher android:id="@+id/ViewSwitcher" android:layout_width="wrap_content" android:layout_height="wrap_content"/>
设置进出动画效果:
Animation slide_in = AnimationUtils.loadAnimation(context, android.R.anim.slide_in_left);Animation slide_out = AnimationUtils.loadAnimation(context, android.R.anim.slide_out_right);viewSwitcher.setInAnimation(slide_in);viewSwitcher.setOutAnimation(slide_out);
把子View添加到ViewSwitcher中有2种方法,
viewSwitcher.setFactory(new ViewSwitcher.ViewFactory() { @Override public View makeView() { return viewList.get((count++)%viewList.size()); }});
或者:
viewSwitcher.addView(tv);viewSwitcher.addView(iv);
展示前一个控件
viewSwitcher.showPrevious();
展示后一个控件:
viewSwitcher.showNext();
ViewFipper
ViewSwitcher只允许有2个view,ViewFipper可以有多个。
<ViewFlipper android:id="@+id/viewFlipper" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_margin="30dp"/>
现获取对象,在设置进出动画
Animation slide_in = AnimationUtils.loadAnimation(context, android.R.anim.slide_in_left);Animation slide_out = AnimationUtils.loadAnimation(context, android.R.anim.slide_out_right);viewFlipper.setInAnimation(slide_in);viewFlipper.setOutAnimation(slide_out);
添加子view
viewFlipper.addView(tv);viewFlipper.addView(iv);viewFlipper.addView(aSwitch);viewFlipper.addView(cb);
展示前一个控件
viewSwitcher.showPrevious();
展示后一个控件:
viewSwitcher.showNext();
往ViewFlipper
添加子view,除了java代码addView(...)
,还可以在xml中直接放入view
<ViewFlipper android:id="@+id/viewFlipper" android:layout_width="wrap_content" android:layout_height="wrap_content" android:flipInterval="2000" android:inAnimation="@android:anim/slide_in_left" android:outAnimation="@android:anim/slide_out_right"> <include layout="@layout/check_box"/> <include layout="@layout/rating_bar"/> <include layout="@layout/text_view"/></ViewFlipper>
flipInterval:动画时长
inAnimation:进入动画
outAnimation:退出动画
AdapterViewFlipper
<AdapterViewFlipper android:id="@+id/adapterViewFlipper" android:layout_width="wrap_content" android:layout_height="wrap_content"/>
现获取对象,在设置进出动画,这个动画必须是ObjectAnimator
Property<View, Float> translationX = View.TRANSLATION_X;ObjectAnimator in = ObjectAnimator.ofFloat(adapterViewFlipper, translationX, -50, 0);ObjectAnimator out = ObjectAnimator.ofFloat(adapterViewFlipper, translationX, 0,200);adapterViewFlipper.setInAnimation(in);adapterViewFlipper.setOutAnimation(out);
设置adapter
public class MyAdapter extends BaseAdapter { @Override public int getCount() { return imgArray.length; } @Override public Object getItem(int position) { return imgArray[position]; } @Override public long getItemId(int position) { return position; } @Override public View getView(int position, View convertView, ViewGroup parent) { ImageView iv = new ImageView(context); iv.setImageResource(imgArray[position]); return iv; }}
MyAdapter adapter = new MyAdapter();adapterViewFlipper.setAdapter(adapter);
展示前一个控件
viewSwitcher.showPrevious();
展示后一个控件:
viewSwitcher.showNext();
StackView
介绍:
A view that displays its children in a stack and allows users to discretely swipe through the children
StackView
继承自AdapterViewAnimator
,也需要设置adapter
wrap_content 设置width和height,图片之间的间距是不同的
<StackView android:id="@+id/stackView" android:loopViews="true" android:layerType="hardware" android:layout_marginTop="30dp" android:layout_width="200dp" android:layout_height="200dp"></StackView>
private int[] imgArray = {R.mipmap.a,R.mipmap.b,R.mipmap.c,R.mipmap.d,R.mipmap.e,R.mipmap.f};stackView = (StackView) findViewById(R.id.stackView);List<Map<String ,Object>> list = new ArrayList<>();for (int i = 0; i < imgArray.length; i++) { Map<String, Object> map = new HashMap<>(); map.put("image",imgArray[i]); list.add(map);}SimpleAdapter adapter = new SimpleAdapter(context,list,R.layout.item_1,new String[]{"image"},new int[]{R.id.iv});stackView.setAdapter(adapter);
Demo
https://git.oschina.net/AndroidUI/Transition01
阅读全文
0 0
- Android_UI:ViewAnimator ViewSwitcher TextSwitcher ImageSwicher StackView ViewFlipper AdapterViewFli
- Androi UI 详解之ViewAnimator(ViewSwitcher,ImageSwitcher,TextSwitcher,ViewFlipper)
- ViewSwitcher,ImageSwitcher,TextSwitcher,ViewAnimator
- Android ViewFlipper/ViewSwitcher/ViewPager/VerticalViewPager/ViewFlow/StackView/AdapterViewFli用法案例实现
- Android----ViewFlipper,ViewSwitcher(ImageSwitcher,TextSwitcher)
- android viewanimator viewfilter viewswitcher textswitcher imageswitcher
- 第5组UI "让你的界面酷炫到底"-ViewAniMator之ViewSwitcher、ImageSwitcher(图像切换器)、TextSwitcher(文本切换器)、ViewFlipper
- Android_UI:TextView + TextLinkify + TextSwitcher
- Android ViewSwitcher、TextSwitcher、ImageSwitcher
- ViewFlipper and ViewAnimator
- ViewAnimator之ViewFlipper
- TextSwitcher与ViewSwitcher学习笔记
- ViewAnimator及其子类ViewSwitcher,ViewFipper的使用
- ViewFlipper 视图切换组件 ViewAnimator
- Android Animation之ViewAnimator\ViewFlipper
- ViewAnimator 之(二)ViewFlipper
- ViewAnimator 之(一) ImageSwitcher和TextSwitcher
- Android_UI
- (一)SLAM拓扑地图(地图的生成和显示)
- VS2010常用快捷键
- javascript实现购物车加减
- matplotlib基础——令画图时显示中文的方法
- git基础命令
- Android_UI:ViewAnimator ViewSwitcher TextSwitcher ImageSwicher StackView ViewFlipper AdapterViewFli
- destoon模板语法
- MFC中按指定分隔符分割CString字符串
- 虚拟地址空间、虚拟内存
- 每个人都应该知道的25个大数据术语
- tomcat技能树
- Chrome 控制台不完全指南 [转] (部分功能已经无效,比如copy)
- HDU5723(53/600)
- POJ