在这里插入图片描述
在这里插入图片描述

1-----Activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/mylayout"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity"
    android:background="@drawable/back" >
</FrameLayout>

2-----------------
MainActivity.java
package edu.ydk.myapplication;
import java.util.Timer;
import java.util.TimerTask;

import android.annotation.SuppressLint;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.FrameLayout;
import android.app.Activity;
import android.graphics.drawable.Drawable;

public class MainActivity extends Activity {
    //初始化变量,帧布局
    FrameLayout frame = null;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        //定义空FrameLayout布局,将前景图像位置设置中央位置
        //Activity获取到FrameLayout布局,
        frame = (FrameLayout) findViewById(R.id.mylayout);
        //onCreate()新建计时器对象Timer  并重写run方法,每隔170毫秒向handler发送空信息
        //定义一个定时器对象,定时发送信息给handler
        new Timer().schedule(new TimerTask() {
            @Override
            public void run() {
                //发送一条空信息   来通知系统改变前景图片
                handler.sendEmptyMessage(0x123);
            }
        }, 0,170);
    }
    //新建Handler对象,重写handlerMessage()方法,调用图像- 更新move
    //自定义:handler类对象---目的定时更新UI界面
    @SuppressLint("HandlerLeak")
    Handler handler = new Handler()
    {
        int i = 0;
        @Override
        public void handleMessage(Message msg) {
            //判断信息是否为本应用发出
            if(msg.what == 0x123)
            {
                i++;
                move(i % 8 );
            }
            super.handleMessage(msg);
        }
    };
    //自定义move()方法,通过switch动态设置前景图片显示的位图
    //定义切换图片的的顺序
    void move(int i)
    {
        //定义资源
        Drawable a = getResources().getDrawable(R.mipmap.s_1);
        Drawable b = getResources().getDrawable(R.mipmap.s_2);
        Drawable c = getResources().getDrawable(R.mipmap.s_3);;

        //通过setForeground来设置前景图像(感觉好像在动)
        switch(i)
        {
            case 0:
                frame.setForeground(a);
                break;
            case 1:
                frame.setForeground(b);
                break;
            case 2:
                frame.setForeground(c);
                break;

        }
    }


}

https://www.runoob.com/w3cnote/android-tutorial-framelayout.html

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐