ViewFlipper实现竖向广播轮转效果
来源:互联网 发布:java target value 编辑:程序博客网 时间:2024/05/16 08:12
ViewFlipper继承自ViewAnimator,再上层是FrameLayout,OK,把它当成FrameLayout容器使用。
直接看例子:
layout:
<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context="wy.bzt.com.carousel.MainActivity"> <ViewFlipper android:id="@+id/vf" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginBottom="20dp" android:flipInterval="2000" > <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:text="@string/test1" android:textSize="24sp" android:gravity="center_horizontal" /> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:text="@string/test2" android:textSize="24sp" android:gravity="center_horizontal" /> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:text="@string/test3" android:textSize="24sp" android:gravity="center_horizontal" /> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:text="@string/test4" android:textSize="24sp" android:gravity="center_horizontal" /> </ViewFlipper></RelativeLayout>
activity:
public class MainActivity extends AppCompatActivity { @butterknife.Bind(R.id.vf) ViewFlipper vf; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); butterknife.ButterKnife.bind(this); vf.startFlipping(); }}
好吧,就这么简单,直接可以运行了。
为了效果好一点,实用一点,优化一下代码:
layout:
<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context="wy.bzt.com.carousel.MainActivity"> <ViewFlipper android:id="@+id/vf" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginBottom="20dp" > </ViewFlipper></RelativeLayout>
activity:
public class MainActivity extends AppCompatActivity { @butterknife.Bind(R.id.vf) ViewFlipper vf; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); butterknife.ButterKnife.bind(this); initView(); } private void initView() { String [] carousel=getResources().getStringArray(R.array.mycarousel); int size= carousel.length; for (String s:carousel){ TextView tv=new TextView(this); tv.setLayoutParams(new FrameLayout.LayoutParams(FrameLayout.LayoutParams.MATCH_PARENT, FrameLayout.LayoutParams.WRAP_CONTENT)); tv.setGravity(Gravity.CENTER_HORIZONTAL); tv.setText(s); tv.setTextSize(dp2px(20)); vf.addView(tv); } vf.setFlipInterval(3000); vf.setInAnimation(AnimationUtils.loadAnimation(this,R.anim.carousel_in)); vf.setOutAnimation(AnimationUtils.loadAnimation(this,R.anim.carousel_out)); vf.startFlipping(); } /** 单位转换 */ public int dp2px( int dp) { float scale = getResources().getDisplayMetrics().density; return (int) (dp * scale + 0.5f); }}
anim:
carousel_in.xml
<?xml version="1.0" encoding="utf-8"?><set xmlns:android="http://schemas.android.com/apk/res/android" android:duration="300" > <translate android:fromYDelta="100%" android:toYDelta="0%" /> <alpha android:fromAlpha="0.0" android:toAlpha="1.0"/></set>
carousel_out.xml
<?xml version="1.0" encoding="utf-8"?><set xmlns:android="http://schemas.android.com/apk/res/android" android:duration="300" > <translate android:fromYDelta="0%" android:toYDelta="-100%" /> <alpha android:fromAlpha="1.0" android:toAlpha="0.0"/></set>
strings:
<resources> <string name="app_name">Carousel</string> <string name="test1">今年过节不收礼~</string> <string name="test2">收礼还收脑白金!</string> <string name="test3">我就不收脑白金!!!</string> <string name="test4">脑黄金巨惠来袭~~</string> <string-array name="mycarousel"> <item >@string/test1</item> <item >@string/test2</item> <item >@string/test3</item> <item >@string/test4</item> </string-array></resources>
代码很简单,就不注释了。添加了一个动画效果,一个动态的内容填充效果,只需要更改数据源的内容就可以控制播放内容。OK,就这些了。
0 0
- ViewFlipper实现竖向广播轮转效果
- C#实现图片轮转效果
- Android自学笔记之ViewFlipper实现 图片轮转
- IDV+CSS实现竖向选项卡效果
- ViewFlipper实现左滑右滑的效果
- 自定义ViewFlipper 实现滚动效果
- ViewFlipper实现界面切换效果
- jquery + jQuery.timer 实现轮转广告效果
- popupWindow添加viewFlipper实现菜单动画效果
- ViewFlipper实现简单的幻灯片效果
- 利用ViewFlipper实现屏幕切换动画效果
- 使用ViewFlipper实现图片左右滑动效果
- ViewFlipper实现滑动换图效果
- 实现滑动切换效果:ViewFlipper、OnGestureListener
- android通过ViewFlipper实现左右滑动效果
- ViewFlipper实现ViewPager的页面切换效果
- ViewFlipper实现屏幕切换动画效果
- 使用ViewFlipper实现屏幕切换动画效果
- android 流量的统计
- Android静态安全检测 -> 自定义权限的保护级别
- NYOJ-素数
- apache commons fileupload 依赖信息(2016-07-01更新)
- Tensorflow 可视化 TensorBoard 尝试~
- ViewFlipper实现竖向广播轮转效果
- 源码解压ruby
- PGP 加密、解密 和 验证签名 函数 大全
- JavaScript兼容处理
- First Time
- Javascript创建对象的几种方式及优劣
- CKEditor标准版添加上传图片和文件
- Android异步处理二:使用AsyncTask异步更新UI界面
- 在Fragment中使用StartActivityForResult,RequestCode错乱的问题