Android使用ViewFlipper实现图片上下自动轮播

先看效果:

QQ图片20210511231831.gif

1.xml代码:

                      <ViewFlipper
                            android:id="@+id/viewFlipper"
                            android:layout_width="match_parent"
                            android:layout_height="match_parent"
                            android:flipInterval="3000"
                            android:inAnimation="@anim/anim_marquee_in"
                            android:outAnimation="@anim/anim_marquee_out" />

2.具体实现:

(1)关键代码:

                // 轮播的图片集合
                List<String> picList;     
                //......................
                //..........此处省去初始化picList,一般来源于服务器接口返回......          
                //......................
                viewFlipper.removeAllViews();
                for (int i = 0; i < picList.size(); i++) {
                    final String pic = picList.get(i);
                    // 此处可以换成自己自定义的布局,根据需求
                    ImageView iv = new ImageView(context);
                    // 一般是图片url,可换为Glide进行加载
                    iv.setImageResource(R.mipmap.bg);
                    // 循环滚动图片的点击事件
                    iv.setOnClickListener(listener);
                    viewFlipper.addView(iv);
                    viewFlipper.setAutoStart(true);
                }
                viewFlipper.setFlipInterval(3 * 1000);
                viewFlipper.startFlipping();

(2)轮播动画:android:inAnimation + android:outAnimation

anim_marquee_in

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

anim_marquee_out

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
    <translate
        android:duration="1500"
        android:fromYDelta="0"
        android:toYDelta="-100%p"/>
</set>
  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 12
    评论
好的,您的问题是如何在activity中使用ViewFlipper控件实现图片轮播,并在7秒后使用handle跳转到其他activity。首先,您需要在activity的布局文件中添加ViewFlipper控件,同时在ViewFlipper中添加ImageView元素来加载图片。然后,您可以使用setFlipInterval方法设置ViewFlipper中图片轮播的时间间隔,使用startFlipping方法开始图片轮播。最后,使用Handler的postDelayed方法在7秒后跳转到其他activity。 以下是示例代码: XML文件中添加ViewFlipper和ImageView元素: ``` <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" ...> <ViewFlipper android:id="@+id/view_flipper" android:layout_width="match_parent" android:layout_height="match_parent" android:autoStart="true" android:flipInterval="3000"> <ImageView android:src="@drawable/image1" android:layout_width="match_parent" android:layout_height="match_parent"/> <ImageView android:src="@drawable/image2" android:layout_width="match_parent" android:layout_height="match_parent"/> ... </ViewFlipper> ... </RelativeLayout> ``` Java代码中使用Handler跳转到其他activity: ``` private static final int INTERVAL = 7000; // 7秒 private ViewFlipper mViewFlipper; private Handler mHandler = new Handler(); ... @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_name); mViewFlipper = findViewById(R.id.view_flipper); mHandler.postDelayed(new Runnable() { @Override public void run() { // 跳转到其他activity Intent intent = new Intent(NameActivity.this, OtherActivity.class); startActivity(intent); finish(); } }, INTERVAL); } ```
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值