国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁技術文章
文章詳情頁

Android如何實現翻轉動畫效果(卡片翻轉)

瀏覽:6日期:2023-02-14 15:55:10
目錄前言需求一、先介紹三個插值器二、實現步驟1.效果圖2.布局3.邏輯判斷(是否隱藏)4.翻轉動畫5.bug出現6.bug解決三、源碼四、總結前言

最近好友問計蒙翻轉動畫,恰好在大二那年看Android Api Demo時記了筆記,由此寫一篇文章。

需求

屏幕右滑事件觸發卡片的翻轉效果 ,為了方便,在例子中將右滑事件改成按鈕點擊事件

老規矩,最后有源碼

一、先介紹三個插值器 LinearInterpolator() 其變化速率恒定 AccelerateInterpolator() 其變化開始速率較慢,后面加速 DecelerateInterpolator() 其變化開始速率較快,后面減速 二、實現步驟1.效果圖

Android如何實現翻轉動畫效果(卡片翻轉)

2.布局

一個按鈕,兩個TextView(布局文件在源碼部分)

3.邏輯判斷(是否隱藏)

final TextView visibletext;final TextView invisibletext;//邏輯判斷if (textview1.getVisibility() == View.GONE) { visibletext = textview2; invisibletext = textview1;} else { invisibletext = textview2; visibletext = textview1;}4.翻轉動畫

//LinearInterpolator() 其變化速率恒定ObjectAnimator visToInvis = ObjectAnimator.ofFloat(visibletext, 'rotationY', 0f, 90f);visToInvis.setDuration(500);//AccelerateInterpolator() 其變化開始速率較慢,后面加速visToInvis.setInterpolator(new AccelerateInterpolator());final ObjectAnimator invisToVis = ObjectAnimator.ofFloat(invisibletext, 'rotationY',-90f, 0f);invisToVis.setDuration(500);//DecelerateInterpolator() 其變化開始速率較快,后面減速invisToVis.setInterpolator(new DecelerateInterpolator());visToInvis.addListener(new AnimatorListenerAdapter() { @Override public void onAnimationEnd(Animator anim) {visibletext.setVisibility(View.GONE);invisToVis.start();invisibletext.setVisibility(View.VISIBLE); }});visToInvis.start();5.bug出現

發現實現后,第一次點擊出現bug

Android如何實現翻轉動畫效果(卡片翻轉)

6.bug解決

在找到控件后,默認設置y方向角度

textview2.setRotationY(-90f);三、源碼

MainActivity.java

public class MainActivity extends Activity { private TextView textview1; private TextView textview2; private Button button; @Override protected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);initView();//bug解決textview2.setRotationY(-90f);button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) {flipAnimation(); }}); } private void initView() {textview1 = (TextView) findViewById(R.id.textview1);textview2 = (TextView) findViewById(R.id.textview2);button = (Button) findViewById(R.id.button); } private void flipAnimation() {final TextView visibletext;final TextView invisibletext;//邏輯判斷if (textview1.getVisibility() == View.GONE) { visibletext = textview2; invisibletext = textview1;} else { invisibletext = textview2; visibletext = textview1;}//LinearInterpolator() 其變化速率恒定ObjectAnimator visToInvis = ObjectAnimator.ofFloat(visibletext, 'rotationY', 0f, 90f);visToInvis.setDuration(500);//AccelerateInterpolator() 其變化開始速率較慢,后面加速visToInvis.setInterpolator(new AccelerateInterpolator());final ObjectAnimator invisToVis = ObjectAnimator.ofFloat(invisibletext, 'rotationY',-90f, 0f);invisToVis.setDuration(500);//DecelerateInterpolator() 其變化開始速率較快,后面減速invisToVis.setInterpolator(new DecelerateInterpolator());visToInvis.addListener(new AnimatorListenerAdapter() { @Override public void onAnimationEnd(Animator anim) {visibletext.setVisibility(View.GONE);invisToVis.start();invisibletext.setVisibility(View.VISIBLE); }});visToInvis.start(); }}

activity_main.xml

<?xml version='1.0' encoding='utf-8'?><RelativeLayout xmlns:android='http://schemas.android.com/apk/res/android' xmlns:app='http://schemas.android.com/apk/res-auto' xmlns:tools='http://schemas.android.com/tools' android:layout_width='match_parent' android:layout_height='match_parent' tools:context='.MainActivity'><TextView android:layout_width='200dp' android:layout_height='200dp' android:background='#35B9F4' android: android:layout_centerInParent='true' /><TextView android:layout_width='200dp' android:layout_height='200dp' android:background='#03DAC5' android:layout_centerInParent='true' android: /><Button android:layout_width='wrap_content' android:layout_height='wrap_content' android:layout_alignParentBottom='true' android:layout_centerHorizontal='true' android: android:text='點擊翻轉'/></RelativeLayout>四、總結

最后將button的點擊事件改成屏幕監聽事件即可。

到此這篇關于Android如何實現翻轉動畫效果的文章就介紹到這了,更多相關Android實現翻轉動畫內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: Android
相關文章:
主站蜘蛛池模板: 久久久久久久久久久久久久久久久久 | 欧美videos极品| 国产自线一二三四2021 | 日韩国产成人资源精品视频 | 国产高清一区二区三区 | 综合 欧美 亚洲日本 | 久久精品视频91 | 欧美一级欧美一级毛片 | 日韩一区二区不卡 | 亚久久伊人精品青青草原2020 | 久久99久久99精品免观看 | 免费高清不卡毛片在线看 | 日本成人免费在线观看 | 亚洲日本韩国在线 | 亚洲欧美日韩精品永久在线 | 亚洲精品亚洲人成在线 | 午夜伊人 | 精品视频久久 | 国产三级午夜理伦三级 | 视频在线一区二区 | 精品国产不卡一区二区三区 | 天海翼精品久久中文字幕 | 国产呦系列免费 | 国内精品久久久久久 | 国产一级毛片网站 | a级片免费观看视频 | 成人在线欧美 | 91国内精品久久久久影院优播 | 一区二区在线免费视频 | 成年毛片 | 免费a级毛片大学生免费观看 | 九九视频免费精品视频免费 | 亚洲欧美日韩一区 | 国产精品亚洲综合久久 | 日本高清色www | 久久亚洲精品中文字幕第一区 | 精品国产日韩久久亚洲 | 伊人手机视频 | 波多野一区二区三区在线 | 欧美 自拍 丝袜 亚洲 | 在线色网址 |