欧美亚洲综合图区在线|天天射天天干国产成卜|99久久免费国产精精品|国产的欧美一区二区三区|日韩中文字幕无码不卡专区|亚麻成人aV极品一区二区|国产成人AV区一区二区三|成人免费一区二区三区视频网站

當(dāng)前位置:首頁(yè) > APP資源 > 正文內(nèi)容

app動(dòng)效(app動(dòng)效圖標(biāo))

APP資源1年前 (2023-12-28)447

介紹

在 android5.0 以上版本中,google 為我們提供了幾種 activity 切換的過(guò)渡動(dòng)畫(huà),目的是為了讓 activity 切換轉(zhuǎn)場(chǎng)更加美觀(guān),而在 android5.0 之前的 activity 切換顯得生硬。雖然可以自定義給 activity 增添動(dòng)畫(huà)效果,但是效果也不盡如意。而 androi5.x 提供的切換動(dòng)畫(huà)就顯得非常自然,而且容易使用。

現(xiàn)在我們來(lái)看看 androi5.x 提供的動(dòng)畫(huà)效果圖:

Activity過(guò)渡動(dòng)畫(huà)

在 androi5.x 中,為 activity 提供了三中動(dòng)畫(huà)效果,分別是:

explode(分解)

slide(滑進(jìn)滑出)

fade(淡入淡出)

這三種都是 activity 的切換動(dòng)畫(huà)效果,除了這三種以外,我們看如上動(dòng)態(tài)圖中的 “共享元素” ,它其實(shí)也是一種轉(zhuǎn)場(chǎng)動(dòng)畫(huà),只不過(guò)這種需要一定的條件才能夠使用。比如: activity1 和 activity2 中有兩個(gè)一模一樣的內(nèi)容,從 activity1 跳轉(zhuǎn)到 activity2 時(shí)我們才運(yùn)用共享元素的動(dòng)畫(huà)效果,達(dá)到更加的 ui 體驗(yàn)。

下面我們來(lái)具體學(xué)習(xí)和實(shí)現(xiàn)一下這幾種過(guò)渡動(dòng)畫(huà)。

一、explode(分解)

效果圖:

展開(kāi)全文

explode 從屏幕中間進(jìn)或者出,然后將視圖移動(dòng)至最后位置,達(dá)到動(dòng)畫(huà)的效果。

二、slide(滑動(dòng))

效果圖:

slide 是從屏幕邊緣進(jìn)出,同理通過(guò)移動(dòng)視圖形成動(dòng)畫(huà)。

三、fade(淡入淡出)

效果圖:

fade 則是通過(guò)改變視圖的透明度來(lái)達(dá)到動(dòng)畫(huà)效果。

如何使用

我們知道開(kāi)啟一個(gè) activity 只需 startActivity(); 即可,更多的是,我們要想加入過(guò)渡動(dòng)畫(huà),也只需要在 startActivity(); 中傳入需要的參數(shù)即可。

第一步:

例如,我要從 MainActivity 中啟動(dòng) AnimationActivity,只需要在 MainActivity 中 startActivity(); 傳入?yún)?shù)即可,代碼如下:

startActivity(intent, ActivityOptions.makeSceneTransitionAnimation(this).toBundle());

第二步:

在 AnimationActivity 中的 setContentView(); 方法前加入一行代碼:

//在需要啟動(dòng)的 activity 中開(kāi)啟動(dòng)畫(huà)的特征

getWindow().requestFeature(Window.FEATURE_CONTENT_TRANSITIONS);

或者,在 AnimationActivity 中設(shè)置如下 style,并引用到 AnimationActivity 即可。

item name="android:windowContentTransitions"true/item

第三步:

在 AnimationActivity 中設(shè)置要應(yīng)用的動(dòng)畫(huà)效果,如上面介紹的,效果有三種。然后選擇任意一種即可,代碼如下:

getWindow().setEnterTransition(new Explode());

getWindow().setEnterTransition(new Slide());

getWindow().setEnterTransition(new Fade());

上面設(shè)置的是進(jìn)入 activity 的動(dòng)畫(huà),也可以設(shè)置退出 activity 的動(dòng)畫(huà),代碼如下:

getWindow().setExitTransition(new Explode());

getWindow().setExitTransition(new Slide());

getWindow().setExitTransition(new Fade());

共享元素動(dòng)畫(huà)效果

通過(guò)上面這三個(gè)步驟,我相信你一定可以實(shí)現(xiàn)簡(jiǎn)單的 activity 過(guò)渡動(dòng)畫(huà)了,然后接下來(lái)介紹的是 activity 共享元素的動(dòng)畫(huà)效果,這里會(huì)稍微難一點(diǎn)。我就拿我的例子一部分來(lái)舉例子,這樣顯得更加容易理解。

例如,我的例子中兩個(gè)頁(yè)面都有一個(gè)同樣內(nèi)容的 textview ,所以要使其得到共享。

!-- 共享元素必須添加 transitionName 屬性,且對(duì)應(yīng)的元素 name 值一致 --

android.support.v7.widget.AppCompatTextView

android:id="@+id/tv_shared_element"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_gravity="bottom"

android:layout_marginTop="56dp"

android:layout_marginBottom="72dp"

android:gravity="center_horizontal"

android:text="@string/app_txt"

android:textColor="#323232"

android:textSize="18sp"

android:transitionName="shared element"

tools:ignore="UnusedAttribute" /

注意:我們必須為兩個(gè)頁(yè)面的共同元素(textview)設(shè)置一個(gè)屬性:

android:transitionName="shared element"

并且必須保證兩個(gè) textview 的 transitionName 設(shè)置的內(nèi)容一致,否者將無(wú)法達(dá)到共享元素的動(dòng)畫(huà)效果。

最后的關(guān)鍵一步:更改 startActivity(); 參數(shù)內(nèi)容,因?yàn)槲覀冊(cè)O(shè)定了共享元素,所以到進(jìn)行指定,這樣 startActivity 時(shí)才能夠找到目標(biāo),所以啟動(dòng) activity 的代碼因改為這樣:

//這里的 sharedElementName 必須與 xml 文件中設(shè)置的值一致,否則無(wú)法共享

// tvSharedElement 表示要參與共享的 view

startActivity(intent, ActivityOptions.makeSceneTransitionAnimation(this, tvSharedElement,

"shared element").toBundle());

app動(dòng)效(app動(dòng)效圖標(biāo))

如果你的兩個(gè) activity 中有兩個(gè)及以上的內(nèi)容需要共享元素動(dòng)畫(huà)時(shí),你只需要修改代碼為:

startActivity(intent, ActivityOptions.makeSceneTransitionAnimation(this,

Pair.create((View) tvSharedElement, "shared element"))

.toBundle());

這里通過(guò) Pair.create(view,“shared name”);來(lái)傳入需要共享的元素。

好了,本篇關(guān)于 android5.x 提供的幾種過(guò)渡動(dòng)畫(huà)效果就展示完了,雖然過(guò)渡動(dòng)畫(huà)效果很漂亮,但是也要合理的運(yùn)用,也不能每一個(gè) activity 都設(shè)置過(guò)渡動(dòng)畫(huà)。那么,如上動(dòng)態(tài)圖演示的一樣,本案例關(guān)鍵代碼將在下面貼出:

案例代碼

MainActivity 代碼如下:

package com.xww.activityanims;

import android.annotation.SuppressLint;

import android.app.ActivityOptions;

import android.content.Intent;

import android.os.Bundle;

import android.support.v7.app.AppCompatActivity;

import android.support.v7.widget.AppCompatButton;

import android.support.v7.widget.AppCompatTextView;

import android.util.Pair;

import android.view.View;

import butterknife.BindView;

import butterknife.ButterKnife;

import butterknife.OnClick;

@SuppressLint("NewApi")

public class MainActivity extends AppCompatActivity {

@BindView(R.id.btn_explode)

AppCompatButton btnExplode;

@BindView(R.id.btn_slide)

AppCompatButton btnSlide;

@BindView(R.id.btn_fade)

AppCompatButton btnFade;

@BindView(R.id.tv_shared_element)

AppCompatTextView tvSharedElement;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

ButterKnife.bind(this);

}

@OnClick(R.id.btn_explode)

void onExplodeClick() {

Intent intent = new Intent(this, AnimationsActivity.class);

startActivityWithAnimation(intent, "explode");

}

@OnClick(R.id.btn_slide)

void onSlideClick() {

Intent intent = new Intent(this, AnimationsActivity.class);

startActivityWithAnimation(intent, "slide");

}

@OnClick(R.id.btn_fade)

void onFadeClick() {

Intent intent = new Intent(this, AnimationsActivity.class);

startActivityWithAnimation(intent, "fade");

}

private void startActivityWithAnimation(Intent intent, String animType) {

intent.putExtra("anim", animType);

//這里的 sharedElementName 必須與 xml 文件中設(shè)置的值一致,否則無(wú)法共享

// tvSharedElement 表示要參與共享的 view

// startActivity(intent, ActivityOptions.makeSceneTransitionAnimation(this, tvSharedElement,

// "shared element").toBundle());

startActivity(intent, ActivityOptions.makeSceneTransitionAnimation(this,

Pair.create((View) tvSharedElement, "shared element"))

.toBundle());

}

}

接著是 AnimationsActivity 的代碼,這是一個(gè)開(kāi)啟動(dòng)畫(huà)的 Activity ,代碼如下:

package com.xww.activityanims;

import android.annotation.SuppressLint;

import android.os.Bundle;

import android.support.annotation.Nullable;

import android.support.v7.app.AppCompatActivity;

import android.support.v7.widget.AppCompatTextView;

import android.transition.Explode;

import android.transition.Fade;

import android.transition.Slide;

import android.view.Window;

import butterknife.BindView;

import butterknife.ButterKnife;

@SuppressLint("NewApi")

public class AnimationsActivity extends AppCompatActivity {

@BindView(R.id.tv_anim_type)

AppCompatTextView tvAnimType;

@Override

protected void onCreate(@Nullable Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

//在需要啟動(dòng)的 activity 中開(kāi)啟動(dòng)畫(huà)的特征

getWindow().requestFeature(Window.FEATURE_CONTENT_TRANSITIONS);

setContentView(R.layout.activity_animations);

ButterKnife.bind(this);

setEnterAnim();

}

@SuppressWarnings("ConstantConditions")

private void setEnterAnim() {

final String animType = (String) getIntent().getExtras().get("anim");

tvAnimType.setText(animType);

switch (animType) {

case "explode":

getWindow().setEnterTransition(new Explode());

break;

case "slide":

getWindow().setEnterTransition(new Slide());

break;

case "fade":

getWindow().setEnterTransition(new Fade());

break;

}

}

}

AnimationsActivity 布局文件如下:

?xml version="1.0" encoding="utf-8"?

android.support.design.widget.CoordinatorLayout 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"

android.support.v7.widget.ContentFrameLayout

android:id="@+id/frame"

android:layout_width="match_parent"

android:layout_height="280dp"

android:background="#ff3312"

android.support.v7.widget.AppCompatTextView

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_gravity="center"

android:text="https://blog.csdn.net/smile_Running"

android:textColor="#ffffff"

android:textSize="20sp"

tools:ignore="HardcodedText" /

/android.support.v7.widget.ContentFrameLayout

!-- anchor 屬性必須在 CoordinatorLayout 下一級(jí)才能生效 --

android.support.design.widget.FloatingActionButton

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:src="@drawable/ic_person_add_black_24dp"

app:elevation="8dp"

app:layout_anchor="@id/frame"

app:layout_anchorGravity="bottom|right" /

android.support.design.widget.FloatingActionButton

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:src="@drawable/ic_sentiment_satisfied_black_24dp"

app:elevation="8dp"

app:layout_anchor="@id/frame"

app:layout_anchorGravity="bottom|left" /

android.support.v7.widget.CardView

android:layout_width="220dp"

android:layout_height="120dp"

app:cardBackgroundColor="#ffdd55"

app:cardCornerRadius="24dp"

app:cardElevation="8dp"

app:layout_anchor="@id/frame"

app:layout_anchorGravity="bottom|center_horizontal"

android.support.v7.widget.AppCompatTextView

android:id="@+id/tv_anim_type"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_gravity="center"

android:text="animations"

android:textColor="#ffffff"

android:textSize="25sp"

tools:ignore="HardcodedText" /

/android.support.v7.widget.CardView

android.support.v7.widget.AppCompatTextView

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_gravity="bottom"

android:layout_marginBottom="72dp"

android:gravity="center_horizontal"

android:text="@string/app_txt"

android:textColor="#323232"

android:textSize="18sp"

android:transitionName="shared element"

tools:ignore="UnusedAttribute" /

/android.support.design.widget.CoordinatorLayout

讓我們的 Activity 的切換更加炫酷起來(lái)吧!

掃描二維碼推送至手機(jī)訪(fǎng)問(wèn)。

版權(quán)聲明:本文由飛速云SEO網(wǎng)絡(luò)優(yōu)化推廣發(fā)布,如需轉(zhuǎn)載請(qǐng)注明出處。

本文鏈接:http://www.landcheck.net/post/74556.html

標(biāo)簽: app動(dòng)效

“app動(dòng)效(app動(dòng)效圖標(biāo))” 的相關(guān)文章

武漢app定制開(kāi)發(fā)公司(武漢app定制開(kāi)發(fā)公司怎么樣)

武漢app定制開(kāi)發(fā)公司(武漢app定制開(kāi)發(fā)公司怎么樣)

1華盛恒輝科技有限公司 上榜理由華盛恒輝是一家專(zhuān)注于高端軟件定制開(kāi)發(fā)服務(wù)和高端建設(shè)的服務(wù)機(jī)構(gòu),致力于為企業(yè)提供全面系統(tǒng)的開(kāi)發(fā)制作方案在開(kāi)發(fā)建設(shè)到運(yùn)營(yíng)推廣領(lǐng)域擁有豐富經(jīng)驗(yàn),在教育,醫(yī)療,APP,管理,商城,人工。 三整體評(píng)估選擇開(kāi)發(fā)公司,一定要進(jìn)行整體評(píng)估,一是評(píng)估自身,二是評(píng)估對(duì)方四跟進(jìn)速度好的AP...

網(wǎng)站類(lèi)app(網(wǎng)站類(lèi)型有哪些)

網(wǎng)站類(lèi)app(網(wǎng)站類(lèi)型有哪些)

1、2旅游app排行榜前十名3旅游的app有哪些4旅游攻略app排行榜前十名口碑最好的旅游軟件有哪些?口碑好的旅游軟件去哪兒攜程旅行窮游驢媽媽旅游螞蜂窩自由行一去哪兒去哪兒APP是國(guó)內(nèi)較大的一家旅游出行APP,上面有旅游。 2、2AppmakriOS,WindowsPhone,AndroidAppM...

做企業(yè)規(guī)劃的app(做企業(yè)規(guī)劃的步驟有哪些)

做企業(yè)規(guī)劃的app(做企業(yè)規(guī)劃的步驟有哪些)

十大室內(nèi)設(shè)計(jì)培訓(xùn)機(jī)構(gòu)排行榜 現(xiàn)在室內(nèi)設(shè)計(jì)的門(mén)檻越來(lái)越低,越來(lái)越考驗(yàn)設(shè)計(jì)師的能力,想要讓自己的技術(shù)精益求精,想在預(yù)計(jì)的時(shí)間內(nèi)學(xué)到真本領(lǐng),則選擇去正規(guī)學(xué)校進(jìn)行專(zhuān)業(yè)的學(xué)習(xí)。因?yàn)閷?zhuān)業(yè)的室內(nèi)培訓(xùn)學(xué)??梢越o學(xué)員進(jìn)行更加正規(guī)的培訓(xùn),比如杭州清風(fēng)室內(nèi)設(shè)計(jì)培訓(xùn)學(xué)院,專(zhuān)攻室內(nèi)設(shè)計(jì)一門(mén)專(zhuān)業(yè),老師都是股份責(zé)任制,培訓(xùn)班進(jìn)行...

優(yōu)秀的app首頁(yè)設(shè)計(jì)樣式(優(yōu)秀的app首頁(yè)設(shè)計(jì)樣式有哪些)

優(yōu)秀的app首頁(yè)設(shè)計(jì)樣式(優(yōu)秀的app首頁(yè)設(shè)計(jì)樣式有哪些)

UI設(shè)計(jì)必要知道的APP頁(yè)面 一起始頁(yè)launchscreen說(shuō)明程序啟動(dòng)時(shí)需要一定的反應(yīng)時(shí)間,在這段時(shí)間內(nèi)屏幕處于空置狀態(tài),為了讓用戶(hù)知道程序已經(jīng)啟動(dòng),現(xiàn)在只有一個(gè)加載過(guò)程,而且也是為了緩解用戶(hù)的焦慮,所以用圖片視頻代替;回答目前互聯(lián)發(fā)展勢(shì)頭越來(lái)越好,app應(yīng)用也是日益增多,因此app的引導(dǎo)頁(yè)設(shè)計(jì)...

app應(yīng)用開(kāi)發(fā)哪里做得好(各種app開(kāi)發(fā)的是學(xué)什么專(zhuān)業(yè)的)

app應(yīng)用開(kāi)發(fā)哪里做得好(各種app開(kāi)發(fā)的是學(xué)什么專(zhuān)業(yè)的)

北京華盛恒輝科技有限公司東軟集團(tuán)海輝軟件等都不錯(cuò)北京華盛恒輝科技有限公司hivekion是一家專(zhuān)注IT產(chǎn)品研發(fā)與服務(wù)的企業(yè),是全球領(lǐng)先的IT解決方案提供商?hào)|軟以軟件技術(shù)為核心,通過(guò)軟件與服務(wù)的結(jié)合,軟件與制造的。 其實(shí)市場(chǎng)上做APP的也有好多公司,但是每一個(gè)公司他主營(yíng)都不一樣,因?yàn)槊總€(gè)公司技術(shù)的專(zhuān)業(yè)...

app軟件開(kāi)發(fā)制作方案(app軟件開(kāi)發(fā)制作方案怎么做)

app軟件開(kāi)發(fā)制作方案(app軟件開(kāi)發(fā)制作方案怎么做)

從最初與客戶(hù)了解需求功能到最終的測(cè)試上線(xiàn),一個(gè)完整的APP就被開(kāi)發(fā)出來(lái)了如同其他軟件開(kāi)發(fā)一樣,APP的整個(gè)生命周期都是需要緊扣用戶(hù)需求的,一旦脫離用戶(hù)需求,就極可能開(kāi)發(fā)出質(zhì)量差用戶(hù)不認(rèn)可的APP軟件,這是許多APP開(kāi)發(fā);就可以聯(lián)網(wǎng)進(jìn)行系統(tǒng)內(nèi)測(cè),參與人員包括項(xiàng)目需求方和開(kāi)發(fā)公司測(cè)試人員,可以下載并安裝...