android学习笔记35——AnimationDrawable资源

AnimationDrawable资源

AnimationDrawable,代表一个动画。

android既支持传统的逐帧动画(类似于电影方式,一张图片一张图片的切换),也支持通过平移、变换计算出来的补间动画、属性动画。

下面以补间动画为例,介绍如何定义AnimationDrawable资源。

定义补间动画的XML资源文件以<set.../>元素作为根元素,该元素内可定义如下4个元素:

  1.alpha:设置透明度的改变;

  2.scale:设置图片进行缩放改变;

  3.translate:设置图片进行位移变换;

  4.rotate:设置图片进行旋转;

定义动画的XML资源文件存放于/res/anmi路径下,当使用ADT(Android Development Tools)创建一个android应用时,默认不会包含该路径,开发者需要自行创建该路径。

定义补间动画的思路:

  设置一张图片的开始状态(包括透明度、位置、缩放比、旋转度)

  设置该图片的结束状态(包括透明度、位置、缩放比、旋转度)

  设置动画的持续时间,android系统会使用动画效果把这张图片从开始状态变换到结束状态。

设置补间动画的语法格式如下图:

实例:实现图片资源的缩放变换、位移变换

访问方式:java-->R.anim.filename  xml-->anim.filename

java中获取Animation对象,可通过AnimationUtils的LoadAnimation(context ctx,int resId)方法获取。

动画资源文件==》myanim
需要手动创建res/anim文件夹
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"android:interpolator="@android:anim/linear_interpolator" ><!-- 定义缩放变换 --><scaleandroid:duration="2000"android:fillAfter="true"android:fromXScale="1.0"android:fromYScale="1.0"android:pivotX="50%"android:pivotY="50%"android:toXScale="1.4"android:toYScale="0.6" /><!-- 定义位移变换 --><translateandroid:duration="2000"android:fromXDelta="10"android:fromYDelta="30"android:toXDelta="130"android:toYDelta="-80" /><!-- 设置透明度的改变 --><alpha /><!-- 设置图片进行旋转 --><rotate /></set>布局文件==》
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"tools:context=".MainActivity" ><Buttonandroid:id="@+id/btnStar"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_gravity="center|center"android:gravity="center"android:text="启动"tools:ignore="HardcodedText" /><!-- tools:ignore="HardcodedText" 表示忽略编码方式警告 --><!-- tools:ignore="ContentDescription"  表示忽略编码方式警告 --><ImageViewandroid:id="@+id/image"android:layout_width="match_parent"android:layout_height="wrap_content"android:src="@drawable/nicenice"tools:ignore="ContentDescription" /></LinearLayout>代码实现==》
package com.example.myanimationdrawable;import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.animation.Animation;
import android.view.animation.AnimationUtils;
import android.widget.Button;
import android.widget.ImageView;public class MainActivity extends Activity
{@Overrideprotected void onCreate(Bundle savedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);final ImageView img = (ImageView) this.findViewById(R.id.image);// 加载动画资源final Animation anim = AnimationUtils.loadAnimation(this, R.anim.myanim);// 设置动画结束后保留结束状态,false表示动画结束后恢复到最初状态anim.setFillAfter(false);Button btnStart = (Button) this.findViewById(R.id.btnStar);btnStart.setOnClickListener(new OnClickListener(){@Overridepublic void onClick(View v){img.startAnimation(anim);// 开始动画}});}@Overridepublic boolean onCreateOptionsMenu(Menu menu){// Inflate the menu; this adds items to the action bar if it is present.getMenuInflater().inflate(R.menu.main, menu);return true;}
}

 

转载于:https://www.cnblogs.com/YYkun/p/5850204.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/372350.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

RESTEasy教程第2部分:Spring集成

RESTEasy提供了对Spring集成的支持&#xff0c;这使我们能够将Spring bean作为RESTful WebServices公开。 步骤&#xff03;1&#xff1a;使用Maven配置RESTEasy Spring依赖项。 <project xmlnshttp:maven.apache.orgPOM4.0.0 xmlns:xsihttp:www.w3.org2001XMLSchema-insta…

java RSA 加签验签【转】

引用自: http://blog.csdn.net/wangqiuyun/article/details/42143957/ java RSA 加签验签 package com.testdemo.core.service.impl.alipay;import java.security.KeyFactory; import java.security.PrivateKey; import java.security.PublicKey; import java.security.spec.PK…

mysql启动时执行sql server_常见 mysql 启动、运行.sql 文件错误处理

1、mysql 启动错误处理查看 log&#xff1a;Mac: /usr/local/var/mysql/lizhendeMacBook-Pro.local.err根据 log 针对性的进行调整&#xff0c;包治百病2、Mysql Incorrect datetime value问题描述&#xff1a;低版本的 mysql 中&#xff0c;数据库转储 sql 文件。导入到高版本…

带有谓词的Java中的函数样式-第2部分

在本文的第一部分中&#xff0c;我们介绍了谓词&#xff0c;这些谓词通过具有返回true或false的单个方法的简单接口&#xff0c;为Java等面向对象的语言带来了函数式编程的某些好处。 在第二部分和最后一部分中&#xff0c;我们将介绍一些更高级的概念&#xff0c;以使您的谓词…

Devxtreme 显示Master-Detail数据列表, 数据显示颜色

1 ////刷新3/4簇Grid2 //function GetClusterGrid(id, coverageId, clusterId) {3 4 // var region getRegionCityName();5 // $.ajax({6 // type: "POST",7 // url: "fast_index_overview.aspx/GetClusterGrid&q…

mysql 排序去重复_php mysql 过滤重复记录并排序

table1idname1a2b3ctable2idnamecont1aaa2bbb3aaaaaSELECT*,count(distincttable2.name)FROMtable1,table2WHEREtable1.nametable2.nameGROUPBYtable2.nameORDERBYtable2.idDESC";重复...table1id name1 a2 b3 ctable2id name cont1 a aa2 b bb3 a aaaaSELECT *,count(dis…

Java EE 6测试第I部分– EJB 3.1可嵌入API

我们从Enterprise JavaBeans开发人员那里听到的最常见的请求之一就是需要改进的单元/集成测试支持。 EJB 3.1 Specification引入了EJB 3.1 Embeddable API&#xff0c;用于在Java SE环境中执行EJB组件。 与传统的基于Java EE服务器的执行不同&#xff0c;可嵌入式用法允许客户端…

Flume 中文入门手冊

原文&#xff1a;https://cwiki.apache.org/confluence/display/FLUME/GettingStarted 什么是 Flume NG? Flume NG 旨在比起 Flume OG 变得明显更简单。更小。更easy部署。在这样的情况下&#xff0c;我们不提交Flume NG 到 Flume OG 的后向兼容。当前。我们期待来自感兴趣測试…

原生JavaScript+CSS3实现移动端滑块效果

在做web页面时&#xff0c;无论PC端还是移动端&#xff0c;我们会遇到滑块这样的效果&#xff0c;可能我们往往会想着去网上找插件&#xff0c;其实这个效果非常的简单&#xff0c;插件代码的的代码往往过于臃肿&#xff0c;不如自己动手&#xff0c;自给自足。首先看一下效果图…

mysql的连接名是哪个文件_mysql连接名是什么

{"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],"search_count":[{"count_phone":4,"count":4}]},"card":[{"des":"阿里云数据库专家保驾护航&#xff0c;为用户…

Activiti绩效对决

每个人在学习Activiti时都会一直问到的问题&#xff0c;与软件开发本身一样古老&#xff1a;“它如何执行&#xff1f;”。 到现在为止&#xff0c;当您问我同样的问题时&#xff0c;我将告诉您Activiti如何以各种可能的方式最小化数据库访问&#xff0c;如何将流程结构分解为“…

怎么使用CKEDITOR

出于工作需求&#xff0c;自己在网上找了个文本编辑器控件, 网址是http://ckeditor.com/ 怎么使用&#xff1f; 先插入脚本<script type"text/javascript" src"*/ckeditor.js"></script>, 然后&#xff0c;在自己的脚本里调用CKEDITOR.replac…

centos 打开pdo_mysql_centos中添加php扩展pdo_mysql步骤

pdo_mysql是php中一个mysql连接类了&#xff0c;我们可以直接使用pdo_mysql来操作数据库这样自己可以不需要写数据库操作类了&#xff0c;下面来介绍在centos中安装pdo_mysql扩展的步骤。本文内容是以 CentOS 为例&#xff0c;红帽系列的 Linux 方法应该都是如此&#xff0c;下…

Java线程死锁–案例研究

本文将描述从在IBM JVM 1.6上运行的Weblogic 11g生产系统中观察到的最新Java死锁问题的完整根本原因分析。 此案例研究还将证明掌握线程转储分析技能的重要性&#xff1b; 包括用于IBM JVM Thread Dump格式。 环境规格 – Java EE服务器&#xff1a;Oracle Weblogic Server 1…

bzoj1968: [Ahoi2005]COMMON 约数研究

水题。。。 #include<cstdio> #include<cstring> #include<iostream> #include<algorithm> using namespace std; #define rep(i,s,t) for(int is;i<t;i) int main(){int ans0,n;scanf("%d",&n);rep(i,1,n) ansn/i;printf("%d\n…

题目1457:非常可乐(广度优先遍历BFS)

题目链接&#xff1a;http://ac.jobdu.com/problem.php?pid1457 详解链接&#xff1a;https://github.com/zpfbuaa/JobduInCPlusPlus 参考代码&#xff1a; // // 1457 非常可乐.cpp // Jobdu // // Created by PengFei_Zheng on 22/04/2017. // Copyright © 2017 Pe…

mysql查询某张表的所有外键_oracle中查询所有外键引用到某张表的记录

欢迎进入Oracle社区论坛&#xff0c;与200万技术人员互动交流 >>进入 oracle中查询所有外键引用到某张表的记录 //查询表的主键约束名 select * from user_constraints e where e.table_name表名;--输入 //查询所有引用到该主键的记录 select b.table_name,b.column_欢迎…

BTrace for Java应用程序简介

本文的目的是学习如何使用BTrace动态跟踪/观察正在运行的Java应用程序&#xff08;JDK 6&#xff09;&#xff0c;而无需更改应用程序的代码和配置参数。 什么是BTrace&#xff1f; BTrace是一个开源项目&#xff0c;始于2007年&#xff0c;最初由A.Sundararajan和K.Balasubra…

丛铭俣 160809324 (作业1)

老师&#xff0c;助教好&#xff01;我是计科3班的丛铭俣&#xff0c;我的性格阳光开朗&#xff0c;待人大方友善&#xff0c;凡事不喜欢斤斤计较&#xff1b;本人热心&#xff0c;喜欢乐于助人&#xff0c;也喜欢和积极向上的人交朋友。最喜欢打羽毛球&#xff0c;其次是篮球&…

mysql死锁分析_MySQL死锁分析

熟悉或者了解数据库的朋友都知道锁的概念&#xff0c;这里不做过多的解析&#xff01;锁的种类有很多&#xff0c;不同数据库的锁管理方式也不同。这里主要谈下MySQL innodb引擎下的死锁。死锁通俗的来讲就是2个事务相互请求对方持有的锁&#xff0c;这样就会造成2个事务相互等…