Android技术分享| Activity 过渡动画 — 让读取更加炫酷
2024-01-31 职场
android:id="@+id/tv_shared_element" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_grity="bottom" android:layout_marginTop="56dp" android:layout_marginBottom="72dp" android:grity="center_horizontal" android:text="@string/app_txt" android:textColor="#323232" android:textSize="18sp" android:transitionName="shared element" tools:ignore="UnusedAttribute" />
泰国试管婴儿多少钱
老人夜尿频多吃什么药
夜尿频多怎么办快速解决
哈萨克斯坦试管婴儿多少钱
留意:我们只能为两个该网站的共同成分(textview)特设一个属性:
android:transitionName="shared element"并且只能保证两个 textview 的 transitionName 特设的具体内容保持一致,否者将难以超过包涵成分的OVA敏感度。
先前的更为重要一步:更改 startActivity(); 模板具体内容,因为我们设定了包涵成分,所以到同步进行原则上,这样 startActivity 早先能够找到期望,所以触发 activity 的预定义因改为这样:
//这里的 sharedElementName 只能与 xml 档案中所特设的值保持一致,否则难以包涵 // tvSharedElement 暗示要参与包涵的 view startActivity(intent, ActivityOptions.makeSceneTransitionAnimation(this, tvSharedElement, "shared element").toBundle());如果你的两个 activity 中所有两个及以上的具体内容需包涵成分OVA时,你须要修改预定义为:
startActivity(intent, ActivityOptions.makeSceneTransitionAnimation(this, Pair.create((View) tvSharedElement, "shared element")) .toBundle());这里通过 Pair.create(view,“shared name”);来起源于需包涵的成分。
好了,本篇关于 android5.x 给予的几种过渡到OVA敏感度就展示再多,虽然过渡到OVA敏感度漂亮,但是也要合理的运用,也不必每一个 activity 都特设过渡到OVA。那么,如上动态图摄像的一样,本情形更为重要预定义将在一个大贴成:
情形预定义VainActivity 预定义如下:
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 sedInstanceState) { super.onCreate(sedInstanceState); 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 档案中所特设的值保持一致,否则难以包涵 // tvSharedElement 暗示要参与包涵的 view // startActivity(intent, ActivityOptions.makeSceneTransitionAnimation(this, tvSharedElement, // "shared element").toBundle()); startActivity(intent, ActivityOptions.makeSceneTransitionAnimation(this, Pair.create((View) tvSharedElement, "shared element")) .toBundle()); } }接着是 AnimationsActivity 的预定义,这是一个开启OVA的 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 sedInstanceState) { super.onCreate(sedInstanceState); //在需触发的 activity 中所开启OVA的相似性 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 格局档案如下:
让我们的 Activity 的读取愈发炫酷起来吧!
。止鼾用什么药最见效泰国试管婴儿多少钱
老人夜尿频多吃什么药
夜尿频多怎么办快速解决
哈萨克斯坦试管婴儿多少钱
相关阅读
- 02-10“风水师”李嘉诚7折卖房626套!“徒弟”碧桂园有信心了
- 02-10投资者提问:公司自产天然气自用吗?对公司生产甲醛成本会不会有所降低?公司尿...
- 02-10【韩系动向790】菲雷利N Line官图发布,冲着凌渡,思域来的!
- 02-10无票职工占商务座脱鞋袜睡觉,广州铁路通报:2人补缴车票,乘务员免职
- 02-10保力新1月底19日现1笔大宗交易 成交金额79.8万元
- 02-10EA211 Evo来袭?新款奥迪Q2L申报由此可知曝光 配1.5T发动机
- 02-10富力海外申请破产
- 02-10投资者提问:公司有开拓海外市场的想吗
- 02-10将于2023年春季首次亮相 雷诺Captur假想图曝光
- 02-10惊天“夺命资”:家中金条304斤,现金27亿,收债逼死89人!