app背景轮换,viewflipper详细实现方法(食人牙慧,备忘)

最近在做一个小东西,需要用到背景定期轮换,上网找了一些,有几种方法,我也不知道哪个好,今天做的是其中一种。关键网上的很多人写东西对我这种小白不太友好,因为我啥也不会,所以今天把我实现的过程贴出来,一方面是方便复习,一方面是给像我一样的小白一个实现的简单方法,基本复制粘贴改名就行了。

先建立一个空的项目,就是这个,使用默认项目名,这样代码干扰少:
app背景轮换,viewflipper详细实现方法(食人牙慧,备忘)

 一、所要改的文件及位置:

  1.layout下面新建4个布局文件。item_view1.xml、item_view2.xml、item_view3.xmlitem_view1.xml.做完这样:

app背景轮换,viewflipper详细实现方法(食人牙慧,备忘)

2.布局layout/activity_main.xml  位置:

app背景轮换,viewflipper详细实现方法(食人牙慧,备忘)

  3.在res下新建:anim文件夹,再新建两个文件 :right_in.xml、right_out.xml.完成后这样。

app背景轮换,viewflipper详细实现方法(食人牙慧,备忘)

 4.mainactivity.java(这个文件名可能不同,一般是在java文件夹下项目名文件夹那个主文件。

app背景轮换,viewflipper详细实现方法(食人牙慧,备忘)

二、 相关增加或修改文件内容:

1、布局文件:

item_view1.xml,其他文件可以此文件复制直接粘贴,改文件名,然后改颜色就行,我就直接贴出来了,这四个文件就名件名不同,颜色不同,其他都一样。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:background="@android:color/holo_red_light"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
</LinearLayout>

item_view2.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#2196F3"
    android:orientation="vertical">

</LinearLayout>

item_view3.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#009688"
    android:orientation="vertical">

</LinearLayout>

item_view4.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#FFEB3B"
    android:orientation="vertical">

</LinearLayout>

activity_main.xml文件增加:

<ViewFlipper
        android:id="@+id/vflp_help"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:inAnimation="@anim/right_in"
        android:outAnimation="@anim/right_out"
        android:flipInterval="3000">
        <include layout="@layout/item_view1" />
        <include layout="@layout/item_view2" />
        <include layout="@layout/item_view3" />
        <include layout="@layout/item_view4" />
    </ViewFlipper>

完全代码:

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Hello World!"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintTop_toTopOf="parent" />
    <ViewFlipper
        android:id="@+id/vflp_help"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:inAnimation="@anim/right_in"
        android:outAnimation="@anim/right_out"
        android:flipInterval="3000">
        <include layout="@layout/item_view1" />
        <include layout="@layout/item_view2" />
        <include layout="@layout/item_view3" />
        <include layout="@layout/item_view4" />
    </ViewFlipper>

</androidx.constraintlayout.widget.ConstraintLayout>

2、动画文件:right_in.xml、right_out.xml.

right_in.xml

<?xml version ="1.0" encoding ="utf-8"?><!--  Learn More about how to use App Actions: https://developer.android.com/guide/actions/index.html -->
<set xmlns:android="http://schemas.android.com/apk/res/android">
    <translate
        android:duration="2000"
        android:fromXDelta="100%p"
        android:toXDelta="0" />
</set>

right_out.xml.

<?xml version ="1.0" encoding ="utf-8"?><!--  Learn More about how to use App Actions: https://developer.android.com/guide/actions/index.html -->
<set xmlns:android="http://schemas.android.com/apk/res/android">
    <translate
        android:duration="2000"
        android:fromXDelta="0"
        android:toXDelta="-100%p" />

</set>

上面是右进的动画,如果左进,代码如下:

left_in.xml

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

left_out.xml

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

然后修改布局文件中下面两行就行了:

  • android:inAnimation="@anim/left_in"

  • android:outAnimation="@anim/right_out"

  • 效果有点不同。有些地方要修改才能完美。没细研究。

3、.mainactivity.java增加就三行,位置不同。

private ViewFlipper vflp_help;
vflp_help = (ViewFlipper) findViewById(R.id.vflp_help);
vflp_help.startFlipping();

完全代码:

package com.example.myapplication;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.widget.ViewFlipper;

public class MainActivity extends AppCompatActivity {
    private ViewFlipper vflp_help;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        vflp_help = (ViewFlipper) findViewById(R.id.vflp_help);
        vflp_help.startFlipping();
    }

}

我不会做动图就不放了。

感谢:https://blog.csdn.net/w690333243/article/details/73559268

上一篇:Pycharm中文版


下一篇:rabbitmq搭建及使用、延时队列、死信队列