通过修改Themed的相关属性,创造出绚丽的Activity切换效果
来源:互联网 发布:程序员都容易猝死吗 编辑:程序博客网 时间:2024/05/16 18:39
首先定义Theme
<resources> <!-- Base application theme. --> <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar"> <item name="android:windowNoTitle">true</item> </style> <style name="Anim_custom" parent="AppTheme"> <item name="android:windowAnimationStyle">@style/custom</item> </style> <style name="custom" parent="@android:style/Animation.Activity"> <item name="android:activityOpenEnterAnimation">@anim/rotate_in</item> <item name="android:activityOpenExitAnimation">@anim/rotate_out</item> <item name="android:activityCloseEnterAnimation">@anim/rotate_in</item> <item name="android:activityCloseExitAnimation">@anim/rotate_out</item> </style></resources>在来定义动画,以上四个属性对应的动画可以是任意动画,不一定非要对称。
下面来定义动画,我在这里偷懒了,然他们对称之定义了两种动画。
rotate_in.xml:
<?xml version="1.0" encoding="utf-8"?><set xmlns:android="http://schemas.android.com/apk/res/android"> <!-- <alpha android:duration="300" android:fromAlpha="0.0" android:interpolator="@android:anim/accelerate_interpolator" android:toAlpha="1.0" /> <scale android:fromXScale="0.0" android:fromYScale="0.0" android:interpolator="@android:anim/accelerate_interpolator" android:pivotX="50%" android:pivotY="50%" android:duration="300" android:toXScale="1.0" android:toYScale="1.0" />--> <rotate android:fromDegrees="90" android:toDegrees="0" android:pivotX="100%" android:pivotY="100%" android:duration="300" /></set>rotate_out.xml:
<?xml version="1.0" encoding="utf-8"?><set xmlns:android="http://schemas.android.com/apk/res/android"> <!-- <alpha android:duration="300" android:fromAlpha="1.0" android:interpolator="@android:anim/decelerate_interpolator" android:toAlpha="0.0" /> <scale android:fromXScale="1.0" android:fromYScale="1.0" android:interpolator="@android:anim/decelerate_interpolator" android:pivotX="50%" android:pivotY="50%" android:duration="300" android:toXScale="0.0" android:toYScale="0.0" />--> <rotate android:fromDegrees="0" android:toDegrees="90" android:interpolator="@android:anim/decelerate_interpolator" android:pivotX="0%" android:pivotY="0%" android:duration="300" /></set>
可以看到我们定义的是一个set所以可以添加任意多的动画随你喜欢,注释的部分完全可以打开。
AndroidManifest.xml中指定用我们自定义的Theme,一遍所有的Activity都都能用上我们的动画效果,当然如果你只想在某个Activity上用这个动画,只需要让这个Activity单独用我们的Theme就可以:
<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.liaoli.themedifinitioncustomanimation" > <application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:theme="@style/Anim_custom" > <activity android:name=".MainActivity" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity android:name=".Main2Activity" android:label="@string/title_activity_main2" > </activity> </application></manifest>
Main2Activity代码
package com.example.liaoli.themedifinitioncustomanimation;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.view.Menu;import android.view.MenuItem;public class Main2Activity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main2); } }
MainActivity代码:
package com.example.liaoli.themedifinitioncustomanimation;import android.content.Intent;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.view.Menu;import android.view.MenuItem;import android.view.View;public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.menu_main, menu); return true; } public void go(View view) { Intent i = new Intent(this, Main2Activity.class); startActivity(i); }}
源码:http://pan.baidu.com/s/1pJGN80r
0 0
- 通过修改Themed的相关属性,创造出绚丽的Activity切换效果
- Activity切换动画效果的修改
- Activity切换动画效果的修改
- Android Activity切换动画效果的修改
- Activity切换动画效果的修改
- Andorid属性动画实现activity的切换效果
- 由一个div创造出的loading效果
- 反复修改才能创造出优秀的代码
- 反复修改才能创造出优秀的代码
- 反复修改才能创造出优秀的代码
- Activity页面切换的效果
- Activity之间的切换效果
- Activity之间的切换效果
- Activity之间的切换效果
- Activity的动画切换效果
- Activity切换的动画效果
- Activity切换时的效果
- 竖屏转横屏 Activity的切换效果
- 在Java中如何实现“Pless presss any key to continue.”
- C#将图片嵌入网页之中
- jq UI插件
- Java XML解析
- iOS Swift百度地图 添加多个标注
- 通过修改Themed的相关属性,创造出绚丽的Activity切换效果
- 面试之C++题目汇总7
- 解读QT信号与槽机制里 QMetaObject::connectSlotsByName(QObject *o)的源码
- 记录ListView当前的精确位置
- 1015. Reversible Primes (20)
- strlen函数实现——string.h库函数
- Linux系统挂载点与分区的关系
- ERP维护收费,不收费谁维护?
- IOS UIGestureRecognizer