http://www.sufeinet.com/plugin.php?id=keke_group

苏飞论坛

 找回密码
 马上注册

QQ登录

只需一步,快速开始

分布式系统框架(V2.0) 轻松承载百亿数据,千万流量!讨论专区 - 源码下载 - 官方教程

HttpHelper爬虫框架(V2.7-含.netcore) HttpHelper官方出品,爬虫框架讨论区 - 源码下载 - 在线测试和代码生成

HttpHelper爬虫类(V2.0) 开源的爬虫类,支持多种模式和属性 源码 - 代码生成器 - 讨论区 - 教程- 例子

查看: 2306|回复: 5

[新手开发之旅] Android新手开发之旅-Android动画之帧动画

[复制链接]
发表于 2018-12-24 14:58:13 | 显示全部楼层 |阅读模式
本帖最后由 liu 于 2018-12-24 14:07 编辑

帧动画




逐帧动画:Frame Animation     将多张图片按照顺序依次显示


用法:


一、使用xml实现

1、在res/drawable下新建文件,如anim.xml:
根标签是animation-list,里面有一个或者多个item节点组成,oneshot属性表示是否只播放一次,true表示只会播放一次,false表示一直循环播放anim.xml:
[XML] 纯文本查看 复制代码
<?xml version="1.0" encoding="utf-8"?>
<animation-list xmlns:android="http://schemas.android.com/apk/res/android"
    android:oneshot="true">
    <item
        android:drawable="@drawable/img1"
        android:duration="100" />
    <item
        android:drawable="@drawable/img2"
        android:duration="100" />
    <item
        android:drawable="@drawable/img3"
        android:duration="100" />
    <item
        android:drawable="@drawable/img4"
        android:duration="100" />
    <item
        android:drawable="@drawable/img5"
        android:duration="100" />
    <item
        android:drawable="@drawable/img6"
        android:duration="100" />
    <item
        android:drawable="@drawable/img7"
        android:duration="100" />
    <item
        android:drawable="@drawable/img8"
        android:duration="100" />
    <item
        android:drawable="@drawable/img9"
        android:duration="100" />
    <item
        android:drawable="@drawable/img10"
        android:duration="100" />
    <item
        android:drawable="@drawable/img11"
        android:duration="100" />
    <item
        android:drawable="@drawable/img12"
        android:duration="100" />
    <item
        android:drawable="@drawable/img13"
        android:duration="100" />
    <item
        android:drawable="@drawable/img14"
        android:duration="100" />
    <item
        android:drawable="@drawable/img15"
        android:duration="100" />
    <item
        android:drawable="@drawable/img16"
        android:duration="100" />
    <item
        android:drawable="@drawable/img17"
        android:duration="100" />
    <item
        android:drawable="@drawable/img18"
        android:duration="100" />
    <item
        android:drawable="@drawable/img19"
        android:duration="100" />
    <item
        android:drawable="@drawable/img20"
        android:duration="100" />
</animation-list>

activity.xml:
[XML] 纯文本查看 复制代码
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:gravity="center"
    android:orientation="vertical">

    <ImageView
        android:id="@+id/iv"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:background="@drawable/anim" />

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:orientation="horizontal">

        <Button
            android:id="@+id/btn_begin"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="开始" />

        <Button
            android:id="@+id/btn_stop"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginLeft="50dp"
            android:text="结束" />
    </LinearLayout>

</LinearLayout>

MainAcitity:
[Java] 纯文本查看 复制代码
package com.company.helloworld.firstapplication;

import android.graphics.drawable.AnimationDrawable;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        final ImageView iv = (ImageView) findViewById(R.id.iv);
        Button btn_begin = (Button) findViewById(R.id.btn_begin);
        final Button btn_stop = (Button) findViewById(R.id.btn_stop);
        final AnimationDrawable drawable = (AnimationDrawable) iv.getBackground();
        btn_begin.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if (!drawable.isRunning()) {
                    //开启
                    drawable.start();
                }
            }
        });
        btn_stop.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if (drawable.isRunning()) {
                    //停止
                    drawable.stop();
                }
            }
        });
    }
}





二、java代码实现:
布局和上面一样
MainActivity:
[Java] 纯文本查看 复制代码
package com.company.helloworld.firstapplication;

import android.graphics.drawable.AnimationDrawable;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        initView();

    }

    private void initView() {
        final ImageView iv = (ImageView) findViewById(R.id.iv);
        Button btn_begin = (Button) findViewById(R.id.btn_begin);
        final Button btn_stop = (Button) findViewById(R.id.btn_stop);
        final AnimationDrawable anim = (AnimationDrawable) iv.getBackground();
        
        for (int i = 1; i < 21; i++) {
            int id = getResources().getIdentifier("img" + i, "drawable", getPackageName());
            Drawable drawable = getResources().getDrawable(id);
            anim.addFrame(drawable, 200);
        }
        anim.setOneShot(false);
        iv.setImageDrawable(anim);
        
        btn_begin.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if (!anim.isRunning()) {
                    //开启
                    anim.start();
                }
            }
        });
        btn_stop.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if (anim.isRunning()) {
                    //停止
                    anim.stop();
                }
            }
        });
    }
}


效果图:


         x.gif




1. 开通SVIP会员,免费下载本站所有源码,不限次数据,不限时间
2. 加官方QQ群,加官方微信群获取更多资源和帮助
3. 找站长苏飞做网站、商城、CRM、小程序、App、爬虫相关、项目外包等点这里
发表于 2018-12-24 15:01:10 | 显示全部楼层
我只是路过打酱油的。
发表于 2018-12-24 15:32:40 | 显示全部楼层
看到这帖子真是高兴!
发表于 2018-12-26 14:02:30 | 显示全部楼层
真是难得给力的帖子啊。
发表于 2018-12-26 16:35:13 | 显示全部楼层
真是难得给力的帖子啊。
发表于 2018-12-27 13:43:48 | 显示全部楼层
我只是路过打酱油的。
您需要登录后才可以回帖 登录 | 马上注册

本版积分规则

QQ|手机版|小黑屋|手机版|联系我们|关于我们|广告合作|苏飞论坛 ( 豫ICP备18043678号-2)

GMT+8, 2024-4-17 00:45

© 2014-2021

快速回复 返回顶部 返回列表