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.pswp.cn/news/372350.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/372350.shtml
英文地址,請注明出處:http://en.pswp.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個事務相互等…