欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

java實現兩張圖片2D翻轉動畫效果

 更新時間:2022年08月22日 08:35:16   作者:碼靈薯  
這篇文章主要為大家詳細介紹了java實現兩張圖片2D翻轉動畫效果,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下

本文實例為大家分享了java實現兩張圖片2D翻轉動畫的具體代碼,供大家參考,具體內容如下

這可能是簡單的動畫效果吧,但是感覺還挺有意思的。

效果如下

XML代碼如下,很簡單只有兩個imageview

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
? ? xmlns:tools="http://schemas.android.com/tools"
? ? android:id="@+id/framelayout1"
? ? android:layout_width="match_parent"
? ? android:layout_height="match_parent"
? ? tools:context="com.example.dreverse.MainActivity" >

? ? <ImageView
? ? ? ? android:id="@+id/imageView1"
? ? ? ? android:layout_width="fill_parent"
? ? ? ? android:layout_height="fill_parent"
? ? ? ? android:src="@drawable/image1" />

? ? <ImageView
? ? ? ? android:id="@+id/imageView2"
? ? ? ? android:layout_width="fill_parent"
? ? ? ? android:layout_height="fill_parent"
? ? ? ? android:src="@drawable/image2" />

</FrameLayout>

java代碼,也挺簡單的

/*the reversing animation of two pictures
?* @author stephenson feng
?* @date 2016-9-4
?* */
package com.example.dreverse;

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

public class MainActivity extends Activity {

? ? private ImageView imageview1;
? ? private ImageView imageview2;
? ? //第一個動畫,效果是像翻轉似得消失
? ? //第一個參數和第二個參數表示在x軸上的變化:從1變?yōu)?。
? ? //第三個參數和第四個參數表示在y軸上的變化:從1變?yōu)?,沒有變化。
? ? //第五個參數和第六個參數表示在x軸上的變化所參考的位置:RELATIVE_TO_PARENT沿著父級空間,0.5f的中心點。
? ? //第七個參數和第八個參數表示在y軸上的變化所參考的位置:含義與x軸類似
? ? private ScaleAnimation sato1=new ScaleAnimation(1, 0, 1, 1,?
? ? ? ? ? ? Animation.RELATIVE_TO_PARENT, 0.5f, Animation.RELATIVE_TO_PARENT, 0.5f);
? ? //第二個動畫,效果是像翻轉似得出現
? ? private ScaleAnimation sato2=new ScaleAnimation(0, 1, 1, 1,?
? ? ? ? ? ? Animation.RELATIVE_TO_PARENT, 0.5f, Animation.RELATIVE_TO_PARENT, 0.5f);

? ? @Override
? ? protected void onCreate(Bundle savedInstanceState) {
? ? ? ? super.onCreate(savedInstanceState);
? ? ? ? setContentView(R.layout.activity_main);
? ? ? ? //自定義的一個初始化方法
? ? ? ? initImage();
? ? ? ? //主布局使用的是框架布局framelayout,其中只有一個圖片,所以點擊framelayout時候就翻轉圖片
? ? ? ? findViewById(R.id.framelayout1).setOnClickListener(new OnClickListener() {

? ? ? ? ? ? @Override
? ? ? ? ? ? public void onClick(View v) {
? ? ? ? ? ? ? ? if (imageview1.isShown()) {//當前的圖片是圖片1
? ? ? ? ? ? ? ? ? ? imageview1.startAnimation(sato1);//圖片1翻轉式消失
? ? ? ? ? ? ? ? }else {//當前圖片是圖片2的話,圖片2就翻轉式消失
? ? ? ? ? ? ? ? ? ? imageview2.startAnimation(sato1);
? ? ? ? ? ? ? ? }
? ? ? ? ? ? }
? ? ? ? });
? ? }
? ? private void showImage1(){
? ? ? ? imageview1.setVisibility(View.VISIBLE);//圖片1可見
? ? ? ? imageview2.setVisibility(View.INVISIBLE);//圖片2不可見
? ? }
? ? private void showImage2(){
? ? ? ? imageview1.setVisibility(View.INVISIBLE);//圖片1不可見
? ? ? ? imageview2.setVisibility(View.VISIBLE);//圖片2可見
? ? }
? ? private void initImage(){
? ? ? ? imageview1 = (ImageView) findViewById(R.id.imageView1);
? ? ? ? imageview2 = (ImageView) findViewById(R.id.imageView2);
? ? ? ? showImage1();//默認顯示圖片1
? ? ? ? sato1.setDuration(1000);//給動畫設置執(zhí)行時間
? ? ? ? sato2.setDuration(1000);
? ? ? ? //給動畫1設置時間監(jiān)聽器,因為要的效果是:在動畫一結束時立即開始動畫2
? ? ? ? sato1.setAnimationListener(new AnimationListener() {

? ? ? ? ? ? @Override
? ? ? ? ? ? public void onAnimationStart(Animation animation) {
? ? ? ? ? ? ? ? // TODO Auto-generated method stub
? ? ? ? ? ? }

? ? ? ? ? ? @Override
? ? ? ? ? ? public void onAnimationRepeat(Animation animation) {
? ? ? ? ? ? ? ? // TODO Auto-generated method stub
? ? ? ? ? ? }
? ? ? ? ? ? //動畫結束的時候執(zhí)行的方法 ? ? ? ? ?
? ? ? ? ? ? @Override
? ? ? ? ? ? public void onAnimationEnd(Animation animation) {
? ? ? ? ? ? ? ? //如果當前圖片是圖片1
? ? ? ? ? ? ? ? if (imageview1.getVisibility()==View.VISIBLE) {
? ? ? ? ? ? ? ? ? ? //把圖片1的動畫設置為空,現在圖片1的不需要了。也方便下一次設置動畫
? ? ? ? ? ? ? ? ? ? imageview1.setAnimation(null);
? ? ? ? ? ? ? ? ? ? imageview2.startAnimation(sato2);//圖片2按照動畫2出場 ??
? ? ? ? ? ? ? ? ? ? showImage2();//動畫播完了后,把圖片2顯示出來
? ? ? ? ? ? ? ? }else {//如果當前的圖片是圖片2,圖片1就翻轉式的出現
? ? ? ? ? ? ? ? ? ? imageview2.setAnimation(null);
? ? ? ? ? ? ? ? ? ? imageview1.startAnimation(sato2);
? ? ? ? ? ? ? ? ? ? showImage1();
? ? ? ? ? ? ? ? }
? ? ? ? ? ? }
? ? ? ? });
? ? }
}

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • Java調用python代碼的五種方式總結

    Java調用python代碼的五種方式總結

    這篇文章主要給大家介紹了關于Java調用python代碼的五種方式,在Java中調用Python函數的方法有很多種,文中通過代碼介紹的非常詳細,需要的朋友可以參考下
    2023-09-09
  • Java選擇排序和垃圾回收機制詳情

    Java選擇排序和垃圾回收機制詳情

    這篇文章主要介紹Java選擇排序和垃圾回收機制,創(chuàng)建對象就會占據內存,如果程序在執(zhí)行過程中不能再使用某個對象,這個對象是徒耗內存的垃圾,下面來看看文章具體內容吧
    2021-10-10
  • Java實現Swing組件定制Button示例

    Java實現Swing組件定制Button示例

    這篇文章主要介紹了Java實現Swing組件定制Button,涉及java Swing組件Button相關屬性設置與使用操作技巧,需要的朋友可以參考下
    2018-01-01
  • MyBatis3用log4j在控制臺輸出SQL的方法示例

    MyBatis3用log4j在控制臺輸出SQL的方法示例

    本篇文章主要介紹了MyBatis3用log4j在控制臺輸出SQL的方法示例,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-01-01
  • 關于spring boot中幾種注入方法的一些個人看法

    關于spring boot中幾種注入方法的一些個人看法

    這篇文章主要給大家介紹了關于spring boot中幾種注入方法的一些個人看法,文中通過示例代碼介紹的非常詳細,對大家學習或者使用spring boot具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧
    2019-07-07
  • java網絡編程之識別示例 獲取主機網絡接口列表

    java網絡編程之識別示例 獲取主機網絡接口列表

    一個客戶端想要發(fā)起一次通信,先決條件就是需要知道運行著服務器端程序的主機的IP地址是多少。然后我們才能夠通過這個地址向服務器發(fā)送信息。
    2014-01-01
  • java實現文本復制功能

    java實現文本復制功能

    這篇文章主要為大家詳細介紹了java實現文本復制功能,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-11-11
  • 詳解Java的面向對象和面向過程

    詳解Java的面向對象和面向過程

    我們知道,Java是面向對象的編程語言,但是至今仍有不少同學還不太懂”面向對象“的確切含義,今天這篇文章就帶大家真正地認識面向對象,感興趣的同學可以跟著小編一起來學習
    2023-05-05
  • Springboot2.0自適應效果錯誤響應過程解析

    Springboot2.0自適應效果錯誤響應過程解析

    這篇文章主要介紹了Springboot2.0自適應效果錯誤響應過程解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-11-11
  • java二分查找插入法

    java二分查找插入法

    當你需要構建一個大的有序隊列,用插入發(fā)太慢了,可以先用二分查找法,找到在隊列要插入的位置,把數后移一下,然后放進去。比較效率,下面是java使用示例,需要的朋友可以參考下
    2014-03-03

最新評論