安卓_图片定时变换
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="@
·
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
更多推荐
已为社区贡献6条内容
所有评论(0)