一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Android - Android Tween動畫之RotateAnimation實現圖片不停旋轉效果實例介紹

Android Tween動畫之RotateAnimation實現圖片不停旋轉效果實例介紹

2021-01-19 14:53Android開發網 Android

Android中如何使用rotate實現圖片不停旋轉的效果,下面與大家共同分析下Tween動畫的rotate實現旋轉效果,感興趣的朋友可以參考下哈

主要介紹Android中如何使用rotate實現圖片不停旋轉的效果。Android 平臺提供了兩類動畫,一類是 Tween 動畫,即通過對場景里的對象不斷做圖像變換(平移、縮放、旋轉)產生動畫效果;第二類是 Frame 動畫,即順序播放事先做好的圖像,跟電影類似。本文分析 Tween動畫的rotate實現旋轉效果。

在新浪微博客戶端中各個操作進行中時activity的右上角都會有個不停旋轉的圖標,類似刷新的效果,給用戶以操作中的提示。這種非模態的提示方式推薦使用,那么下面就分享下如何實現這種效果吧

1、定義一個ImageView
定義一個ImageView是為了裝載圖片,其中的圖片將被rotate用來進行旋轉,其他View亦可。
資源文件為

復制代碼 代碼如下:


<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<ImageView
android:id="@+id/infoOperating"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/operating"
android:scaleType="center">
</ImageView>
</LinearLayout>


其中的android:src為圖片內容,可使用附件中的圖片。
java代碼為

復制代碼 代碼如下:


ImageView infoOperatingIV = (ImageView)findViewById(R.id.infoOperating);


2、定義rotate旋轉效果
在res/anim文件夾下新建tip.xml文件,內容如下

復制代碼 代碼如下:


<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<rotate
android:fromDegrees="0"
android:toDegrees="359"
android:duration="500"
android:repeatCount="-1"
android:pivotX="50%"
android:pivotY="50%" />
</set>


含義表示從0到359度開始循環旋轉,0-359(若設置成360在停止時會出現停頓現象)度旋轉所用時間為500ms,旋轉中心距離view的左頂點為50%距離,距離view的上邊緣為50%距離,即正中心,具體每個含義見下面的具體屬性介紹。

java代碼為

復制代碼 代碼如下:


Animation operatingAnim = AnimationUtils.loadAnimation(this, R.anim.tip);
LinearInterpolator lin = new LinearInterpolator();
operatingAnim.setInterpolator(lin);


setInterpolator表示設置旋轉速率。LinearInterpolator為勻速效果,Accelerateinterpolator為加速效果、DecelerateInterpolator為減速效果,具體可見下面android:interpolator的介紹。
a. 關于其中的屬性意義如下(紅色部分加以注意):
android:fromDegrees
起始的角度度數
android:toDegrees 結束的角度度數,負數表示逆時針,正數表示順時針。如10圈則比android:fromDegrees大3600即可
android:pivotX 旋轉中心的X坐標
浮點數或是百分比。浮點數表示相對于Object的左邊緣,如5; 百分比表示相對于Object的左邊緣,如5%; 另一種百分比表示相對于父容器的左邊緣,如5%p; 一般設置為50%表示在Object中心
android:pivotY 旋轉中心的Y坐標
浮點數或是百分比。浮點數表示相對于Object的上邊緣,如5; 百分比表示相對于Object的上邊緣,如5%; 另一種百分比表示相對于父容器的上邊緣,如5%p; 一般設置為50%表示在Object中心
android:duration 表示從android:fromDegrees轉動到android:toDegrees所花費的時間,單位為毫秒??梢杂脕碛嬎闼俣取?br /> android:interpolator表示變化率,但不是運行速度。一個插補屬性,可以將動畫效果設置為加速,減速,反復,反彈等。默認為開始和結束慢中間快,
android:startOffset 在調用start函數之后等待開始運行的時間,單位為毫秒,若為10,表示10ms后開始運行
android:repeatCount 重復的次數,默認為0,必須是int,可以為-1表示不停止
android:repeatMode 重復的模式,默認為restart,即重頭開始重新運行,可以為reverse即從結束開始向前重新運行。在android:repeatCount大于0或為infinite時生效
android:detachWallpaper 表示是否在壁紙上運行
android:zAdjustment 表示被animated的內容在運行時在z軸上的位置,默認為normal。
normal保持內容當前的z軸順序
top運行時在最頂層顯示
bottom運行時在最底層顯示
b. 運行速度
運行速度為運行時間(android:duration)除以運行角度差(android:toDegrees-android:fromDegrees),比如android:duration為1000,android:toDegrees為360,android:fromDegrees為0就表示1秒轉1圈。
c. 循環運行

復制代碼 代碼如下:


android:fromDegrees="0"
android:toDegrees="360"
android:repeatCount="-1"


android:repeatCount="-1"即表示循環運行,配合上android:fromDegrees="0" android:toDegrees="360"表示不間斷
3、開始和停止旋轉
在操作開始之前調用

復制代碼 代碼如下:


if (operatingAnim != null) {
infoOperatingIV.startAnimation(operatingAnim);
}


在操作完成時調用

復制代碼 代碼如下:


infoOperatingIV.clearAnimation();


許多朋友不知道如何停止旋轉animation,所以強制設置rotate轉動多少圈表示操作,但卻無法與操作實際的進度匹配上,實際上只要如上代碼所示清除animation即可。
其他:
對于上面的轉動在橫屏(被設置為了不重繪activity)時會出現問題,即旋轉中心偏移,導致動畫旋轉偏離原旋轉中心。解決如下

復制代碼 代碼如下:


@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
if (operatingAnim != null && infoOperatingIV != null && operatingAnim.hasStarted()) {
infoOperatingIV.clearAnimation();
infoOperatingIV.startAnimation(operatingAnim);
}
}

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 猫咪社区免费资源在线观看 | blacked黑人| 天天澡夜夜澡狠狠澡 | 91精品国产在线 | 国产久热香蕉在线观看 | s0e一923春菜花在线播放 | 99精品久久99久久久久久 | bl双性肉文 | 丝瓜视频黄色在线观看 | 包臀裙女教师波多野结衣 | 蜜桃破解版免费看nba | 美女靠逼免费视频 | 成 人 亚洲 综合天堂 | 国产成人高清视频 | 五月丁香啪啪. | 成人免费观看一区二区 | 范冰冰特黄xx大片 | 亚洲欧美精品一区天堂久久 | 嫩草成人影院 | 青青热久免费精品视频网站 | 久久精品国产免费播高清无卡 | 色批网站www | 国产精品福利 | 欧美福利在线播放 | 91天堂一区二区 | 亚洲精品日韩专区在线观看 | 国产51社区精品视频资源 | 黄网在线观看免费网站台湾swag | 国产91素人搭讪系列天堂 | 精品久久久久久久久久久 | 羞羞影院午夜男女爽爽影院网站 | 国产永久免费爽视频在线 | 精品精品久久宅男的天堂 | 亚洲欧美日韩精品高清 | 亚洲欧美日韩国产精品影院 | 亚州在线播放 | 国产成人精品综合在线观看 | 欧美日韩不卡视频 | 春宵福利网站在线观看 | 好深快点再快点好爽视频 | 日本午夜小视频 |