ViewFlipper实现垂直轮播广告效果

来源:互联网 发布:淘宝开网店书籍有用吗 编辑:程序博客网 时间:2024/04/27 15:57

效果图


效果图

java代码

public class MainActivity extends AppCompatActivity {    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        ViewFlipper mViewFlipper = (ViewFlipper) findViewById(R.id.marquee_viewFlipper);        LinearLayout shenzhenIndexLayout = (LinearLayout) View.inflate(this, R.layout.marquee_item_layout1, null);        LinearLayout shangzhenIndexLayout = (LinearLayout) View.inflate(this, R.layout.marquee_item_layout2, null);        LinearLayout cyIndexLayout = (LinearLayout) View.inflate(this, R.layout.marquee_item_layout3, null);        mViewFlipper.addView(shenzhenIndexLayout);        mViewFlipper.addView(shangzhenIndexLayout);        mViewFlipper.addView(cyIndexLayout);    }}

XML布局代码

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:tools="http://schemas.android.com/tools"    android:id="@+id/activity_main"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:orientation="vertical"    android:gravity="center"    android:background="@android:color/white"    tools:context="com.qfxl.android.marqueeView.MainActivity">    <ViewFlipper        android:id="@+id/marquee_viewFlipper"        android:layout_width="match_parent"        android:layout_height="30dp"        android:autoStart="true"        android:background="#e8e8e8"        android:flipInterval="2000"        android:inAnimation="@anim/anim_in"        android:outAnimation="@anim/anim_out"        /></LinearLayout>

anim代码

  • in
  • <?xml version="1.0" encoding="utf-8"?><set xmlns:android="http://schemas.android.com/apk/res/android">    <translate        android:duration="1000"        android:fromYDelta="100%p"        android:toYDelta="0" /></set>

    out
<?xml version="1.0" encoding="utf-8"?><set xmlns:android="http://schemas.android.com/apk/res/android">    <translate        android:duration="1000"        android:fromYDelta="0"        android:toYDelta="-100%p" /></set>

简单分析

<ViewFlipper        android:id="@+id/marquee_viewFlipper"        android:layout_width="match_parent"        android:layout_height="30dp"        android:autoStart="true"        android:background="#e8e8e8"        android:flipInterval="2000"        android:inAnimation="@anim/anim_in"        android:outAnimation="@anim/anim_out"        />

  • autoStart 是否自动开启轮播,这个方法设置为true的时候在源码中,也可以调用java代码setAutoStart(boolean autoStart)
  • flipInterval 轮播时间
  • inAnimation ViewFlipper中子View进入时的动画
  • outAnimation ViewFlipper中子View离开时的动画



原创粉丝点击