亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 系統 > Android > 正文

android Animation監聽器AnimationListener的使用方法)

2020-04-11 12:00:39
字體:
來源:轉載
供稿:網友

AnimationListener聽名字就知道是對Animation設置監聽器,說簡單點就是在Animation動畫效果開始執行前,執行完畢和重復執行時可以觸發監聽器,從而執行對應的函數。

開發環境為android4.1.
AnimaitonListener的使用方法主要是在Animation上設置一個監聽器,即采用Animation的方法成員setAnimationListener().其參數就是監聽器的函數。
現在來說說本次實驗的功能,主要有2個按鈕,一個是增加圖片的按鈕,一個是刪除圖片的按鈕,還有一個ImageView的控件,用來顯示圖片的。當增加圖片的按鈕按下時,圖片會以無到全尺寸的尺寸大小變化出現,而刪除按鈕按下時,圖片會從全尺寸到0尺寸逐漸退出,最后刪除掉。

程序界面如下:

這里值得一提的是ViewGroup這個控件,感覺就是Layout控件一樣,本次實驗的圖片控件ImageView里面的圖片的增加和刪除就是采用的ViewGrop中的addView()和removeView()方法。這2種方法里面傳入的參數就是ImageView.
另外,Mars老師資料中在增加圖片監聽器函數中,重新定義了一個ImageView,重新把這個ImageView加入到ViewGroup中,這樣會導致一個問題,那就是當我們把圖片刪除后且又重新加載后就刪除不掉了,因為我們在刪除的時候刪的是布局文件中的ImageView,但是增加按鈕增加的是另外一個ImageView,所以我們雖然刪除掉了布局文件中的ImageView,但是屏幕上還是會顯示圖片的。因此解決的方法就是在增加按鈕函數中直接使用布局文件中的ImageView,這樣程序中可以一直增加圖片和刪除圖片,且在屏幕中還能看到效果。

程序主要代碼如下:
MainActivity.java:

復制代碼 代碼如下:

package com.example.anim_5;

import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.view.ViewGroup.LayoutParams;
import android.view.animation.Animation;
import android.view.animation.Animation.AnimationListener;
import android.view.animation.ScaleAnimation;
import android.widget.Button;
import android.widget.ImageView;

public class MainActivity extends Activity {

    private Button add = null;
    private Button delete = null;
    private ViewGroup viewgroup =  null;
    private ImageView imageview = null;

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

        add = (Button)findViewById(R.id.add);
        delete = (Button)findViewById(R.id.delete);
        imageview = (ImageView)findViewById(R.id.image);
        viewgroup = (ViewGroup)findViewById(R.id.main_layout);

        add.setOnClickListener(new AddOnClickListener());
        delete.setOnClickListener(new DeleteOnClickListener());
    }

    private class AddOnClickListener implements OnClickListener{

        public void onClick(View v) {
            // TODO Auto-generated method stub
            //數字后面必須全部加f,否則報錯
            ScaleAnimation animation = new ScaleAnimation(0.0f, 1.0f, 0.0f, 1.0f,
                                        Animation.RELATIVE_TO_SELF, 0.5f,
                                        Animation.RELATIVE_TO_SELF, 0.5f);
            animation.setStartOffset(500);
            animation.setDuration(1000);
//            ImageView image_add = new ImageView(MainActivity.this);
//            image_add.setImageResource(R.drawable.london_olympic);
//            viewgroup.addView(image_add, new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
//            image_add.setAnimation(animation);
            //還是直接用布局文件中的ImageView比較好,否則加入的圖片用后面的方法視覺上是刪不掉的
            //這里是采用setImageResource方法加載圖片到ImageView控件上的。
            imageview.setImageResource(R.drawable.london_olympic);
            //用ViewGroup將ImageView加載到activity中
            viewgroup.addView(imageview, new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
            //啟動ImageView的Animation
            imageview.startAnimation(animation);
        }

    }

    private class  DeleteOnClickListener implements OnClickListener{

        public void onClick(View v) {
            // TODO Auto-generated method stub
            ScaleAnimation animation = new ScaleAnimation(1.0f, 0.0f, 1.0f, 0.0f,
                                        Animation.RELATIVE_TO_SELF, 0.5f,
                                        Animation.RELATIVE_TO_SELF, 0.5f);
            animation.setStartOffset(500);
            animation.setDuration(1000);
            //設置AnimationListener
            animation.setAnimationListener(new DeleteAnimationListener());
            imageview.startAnimation(animation);
        }   
    }

    private class DeleteAnimationListener implements AnimationListener{

        public void onAnimationEnd(Animation animation) {
            // TODO Auto-generated method stub
            viewgroup.removeView(imageview);
        }

        public void onAnimationRepeat(Animation animation) {
            // TODO Auto-generated method stub

        }

        public void onAnimationStart(Animation animation) {
            // TODO Auto-generated method stub

        }

    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.activity_main, menu);
        return true;
    }
}



activity_main.xml:
復制代碼 代碼如下:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/main_layout"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

   <Button
       android:id="@+id/delete"
       android:layout_width="fill_parent"
       android:layout_height="wrap_content"
       android:layout_alignParentBottom="true"
       android:text="Delete Image"
       />

   <Button
       android:id="@+id/add"
       android:layout_width="fill_parent"
       android:layout_height="wrap_content"
       android:layout_above="@+id/delete"
       android:text="Add Image" />
   <ImageView
       android:id= "@+id/image"
       android:layout_width="wrap_content"
       android:layout_height="310dip"
       android:src="@drawable/london_olympic"
       />

</RelativeLayout>



總結:通過本次實驗,可以了解到AnimationListener的基本使用方法。

作者:tornadomeet

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
日本三级久久久| 在线观看久久久久久| 国产不卡精品视男人的天堂| 国产不卡av在线免费观看| 国产成人精品视| 国产精品久久久久不卡| 久久精品国产91精品亚洲| 国产精品永久免费视频| 国产精品久久国产精品99gif| 一区二区三区视频免费在线观看| 日韩免费在线看| 欧美电影免费观看高清完整| 精品国产一区二区三区四区在线观看| 国产综合在线看| 久久99精品久久久久久琪琪| 亚洲国产三级网| 国产日韩一区在线| 亚洲jizzjizz日本少妇| 亚洲毛茸茸少妇高潮呻吟| 色小说视频一区| 97香蕉久久超级碰碰高清版| 岛国av一区二区在线在线观看| 欧美一级大片在线观看| 在线精品国产欧美| 97不卡在线视频| 成人性生交大片免费看视频直播| 裸体女人亚洲精品一区| 欧美精品生活片| 精品五月天久久| 91久久精品一区| 久久久999国产精品| 久久精品一偷一偷国产| 97国产一区二区精品久久呦| 欧美极品少妇xxxxx| 黑人巨大精品欧美一区二区免费| 另类美女黄大片| 成人午夜激情免费视频| 欧美性色xo影院| 亚洲国产精品专区久久| 中国人与牲禽动交精品| 国产精品久久久久久久久久久不卡| 亚洲欧美日韩在线高清直播| 国产精品久久久久久久美男| 日韩在线精品一区| 久久久国产一区| 久久精品一偷一偷国产| 国产成人亚洲精品| 国产美女直播视频一区| 国产日韩欧美影视| 色综合亚洲精品激情狠狠| 国产精品免费视频xxxx| 国产成人亚洲综合| 91成人天堂久久成人| 2019中文在线观看| 日本高清久久天堂| 亚洲男人天堂2024| 国产精品视频精品| 欧美成人激情在线| 欧美成人精品一区二区三区| 午夜精品福利视频| 亚洲国产私拍精品国模在线观看| 亚洲精品天天看| 亚洲国产精品va在看黑人| 正在播放欧美视频| 亚洲国产精品va在线| 久久久人成影片一区二区三区| 成人精品视频99在线观看免费| 亚洲女人天堂色在线7777| 亚洲欧美中文日韩在线v日本| 成人黄色短视频在线观看| 欧美日韩在线另类| 91禁外国网站| 久久亚洲精品国产亚洲老地址| 成人妇女免费播放久久久| 国产专区精品视频| 日韩av一卡二卡| 日本精品视频在线观看| 国产视频精品一区二区三区| 久久久精品亚洲| 精品国产一区久久久| 国产精品第100页| 久久青草福利网站| 亚洲丁香久久久| 久久久久久成人精品| 精品国产户外野外| 日韩亚洲第一页| 色综合天天综合网国产成人网| 国产精品jizz在线观看麻豆| 亚洲精品ady| 欧美黑人xxxx| 国产精品69av| 日韩免费av片在线观看| 欧美乱大交xxxxx| 亚洲综合色av| 国产亚洲日本欧美韩国| 在线视频国产日韩| 亚洲欧美www| 国内精品久久久| 美女精品久久久| 亚洲日本中文字幕免费在线不卡| 欧美激情视频网| 亚洲国产成人精品久久| 久久的精品视频| 亚洲一区二区免费在线| 久久免费在线观看| 日韩二区三区在线| 久久久www成人免费精品张筱雨| 亚洲日韩中文字幕| 久久久女人电视剧免费播放下载| 久久成人人人人精品欧| 精品久久久999| 亚洲综合精品伊人久久| 国产精品久久久久久久7电影| 日韩在线观看免费av| 日韩欧美视频一区二区三区| 亚洲欧洲午夜一线一品| 欧美性黄网官网| 欧美成人午夜影院| 国产日本欧美一区| 亚洲一区二区国产| 亚洲国产精品系列| 精品露脸国产偷人在视频| 这里只有精品视频| 国产精品老女人视频| 日韩经典中文字幕| 日韩经典一区二区三区| 欧美制服第一页| 奇米成人av国产一区二区三区| 中文字幕国产亚洲2019| 亚洲国产成人久久综合| 久久69精品久久久久久国产越南| 国产精品视频内| 亚洲国产精品热久久| www亚洲欧美| 97在线免费观看| 亚洲一区二区三区乱码aⅴ| 日韩av黄色在线观看| 欧美日韩第一视频| 欧美乱大交做爰xxxⅹ性3| 成人福利视频网| 亚洲性生活视频| 日韩av免费看网站| 国产91精品久久久久| 亚洲国产第一页| 久久综合九色九九| 亚洲影院色无极综合| 91精品久久久久| 日韩av免费观影| 色偷偷91综合久久噜噜| 欧美日韩亚洲视频一区| 77777亚洲午夜久久多人| 2019日本中文字幕| 久久精品国产免费观看| 欧美超级免费视 在线| 国产中文字幕91| 国产精品偷伦免费视频观看的| 国内精久久久久久久久久人| 45www国产精品网站| 亚洲a在线播放| 欧美国产日本高清在线| 欧美极品少妇xxxxx| 日韩亚洲欧美中文高清在线| 色悠悠国产精品| 久99久在线视频|