<ripplexmlns:android="http://schemas.android.com/apk/res/android" android:color="?android:attr/colorControlHighlight"> <item> <inset android:insetLeft="4dp" android:insetTop="6dp" android:insetRight="4dp" android:insetBottom="6dp"> <shape android:shape="rectangle"> <corners android:radius="2dp"/> <solid android:color="?android:attr/colorButtonNormal"/> <padding android:left="8dp" android:top="4dp" android:right="8dp" android:bottom="4dp"/> </shape> </inset> </item> </ripple>
<ripplexmlns:android="http://schemas.android.com/apk/res/android" android:color="?android:attr/colorControlHighlight"> <item android:id="@android:id/mask"> <color android:color="@android:color/white"/> </item> </ripple>
<ripple xmlns:android="http://schemas.android.com/apk/res/android" android:color="?android:attr/colorControlHighlight"/>
RippleDrawableColorStateList stateList = getResources().getColorStateList(R.color.tint_state_color); RippleDrawable rippleDrawable = new RippleDrawable(stateList,null,null); view.setBackground(rippleDrawable);
Animatoranimator = ViewAnimationUtils.createCircularReveal( view, //操作的视图 view.getWidth() / 2,//动画开始的中心点X view.getHeight() / 2,//动画开始的中心点Y view.getWidth(),//动画开始半径 0 //动画结束半径 ); animator.setInterpolator(newLinearInterpolator()); animator.setDuration(1000); animator.start();
Animatoranimator = ViewAnimationUtils.createCircularReveal( view,0,0,0,(float) Math.hypot(view.getWidth(), view.getHeight())); animator.setDuration(1000); animator.start();
public classArcTranslateAnimationextendsAnimation {
private float mFromXValue,mToXValue,mFromYValue,mToYValue;
private float mFromXDelta,mToXDelta,mFromYDelta,mToYDelta;
private PointF mStart,mControl,mEnd;
public ArcTranslateAnimation(floatfromXValue, floattoXValue, floatfromYValue, floattoYValue) {
mFromXValue = fromXValue;
mToXValue = toXValue;
mFromYValue = fromYValue;
mToYValue = toYValue;
}
protected void applyTransformation(floatinterpolatedTime,Transformationt) {
float dx =calcBezier(interpolatedTime,mStart.x,mControl.x,mEnd.x);
float dy =calcBezier(interpolatedTime,mStart.y,mControl.y,mEnd.y);
t.getMatrix().setTranslate(dx,dy);
}
public void initialize(intwidth, intheight, intparentWidth, intparentHeight) {
super.initialize(width,height,parentWidth,parentHeight);
mFromXDelta = resolveSize(ABSOLUTE,mFromXValue,width,parentWidth);
mToXDelta = resolveSize(ABSOLUTE,mToXValue,width, parentWidth);
mFromYDelta = resolveSize(ABSOLUTE,mFromYValue,height,parentHeight);
mToYDelta = resolveSize(ABSOLUTE,mToYValue,height, parentHeight);
mStart =newPointF(mFromXDelta,mFromYDelta);
mEnd =newPointF(mToXDelta,mToYDelta);
mControl =newPointF(mFromXDelta,mToYDelta);
}
private long calcBezier(floatinterpolatedTime, floatp0, floatp1, float p2) {
return Math.round((Math.pow((1- interpolatedTime),2) * p0)
+ (2 * (1-interpolatedTime) * interpolatedTime * p1) +
(Math.pow(interpolatedTime,2) * p2);
}
}
<selectorxmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_pressed="true"> <set> <objectAnimator android:propertyName="translationZ" android:duration="200" android:valueTo="20dp" android:valueType="floatType"/> </set> </item> <item android:state_enabled="true"android:state_pressed="false"> <set> <objectAnimator android:propertyName="translationZ" android:duration="200" android:valueTo="0" android:valueType="floatType"/> </set> </item> </selector>
<animated-selectorxmlns:android="http://schemas.android.com/apk/res/android"> <item android:id="@+id/pressed"android:drawable="@drawable/btn_check_15" android:state_pressed="true"/> <item android:id="@+id/normal" android:drawable="@drawable/btn_check_0"/> <transition android:fromId="@+id/normal"android:toId="@+id/pressed"> <animation-list> <item android:duration="20"android:drawable="@drawable/btn_check_0"/> <item android:duration="20"android:drawable="@drawable/btn_check_1"/> <item android:duration="20"android:drawable="@drawable/btn_check_2"/> </animation-list> </transition> </animated-selector>
<vectorxmlns:android="http://schemas.android.com/apk/res/android" android:height="64dp" android:width="64dp" android:viewportHeight="600" android:viewportWidth="600"> <group android:name="rotationGroup" android:pivotX="300.0" android:pivotY="300.0" android:rotation="45.0"> <path android:name="v" android:fillColor="#000000" android:pathData="M300,70 l0,-70 70,70 0,0 -70,70z"/> </group> </vector>
<setxmlns:android="http://schemas.android.com/apk/res/android"> <objectAnimator android:duration="3000" android:propertyName="pathData" android:valueFrom="M300,70 l0,-70 70,70 0,0 -70,70z" android:valueTo="M300,70 l0,-70 70,0 0,140 -70,0z" android:valueType="pathType"/> </set>
<animated-vectorxmlns:android="http://schemas.android.com/apk/res/android" android:drawable="@drawable/vector_drawable"> <target android:name="v" android:animation="@anim/vector_anim"/> </animated-vector>
<stylename="DefaultTheme"parent="android:Theme.Material"> <!-- 允许使用transitions --> <item name="android:windowContentTransitions">true</item> <!-- 指定进入、退出、返回、重新进入时的transitions --> <item name="android:windowEnterTransition">@transition/explode</item> <item name="android:windowExitTransition">@transition/explode</item> <item name="android:windowReturnTransition">@transition/explode</item> <item name="android:windowReenterTransition">@transition/explode</item> <!-- 指定进入、退出、返回、重新进入时的共享transitions --> <item name="android:windowSharedElementEnterTransition">@transition/change</item> <item name="android:windowSharedElementExitTransition">@transition/change</item> <item name="android:windowSharedElementReturnTransition">@transition/change</item> <item name="android:windowSharedElementReenterTransition">@transition/change</item> </style>
// 允许使用transitions getWindow().requestFeature(Window.FEATURE_CONTENT_TRANSITIONS); // 指定进入、退出、返回、重新进入时的transitions getWindow().setEnterTransition(newExplode()); getWindow().setExitTransition(newExplode()); getWindow().setEnterTransition(newExplode()); getWindow().setExitTransition(newExplode()); // 指定进入、退出、返回、重新进入时的共享transitions getWindow().setSharedElementEnterTransition(newChangeTransform()); getWindow().setSharedElementExitTransition(newChangeTransform()); getWindow().setSharedElementReturnTransition(newChangeTransform()); getWindow().setSharedElementReenterTransition(newChangeTransform());
<transitionclass="my.app.transition.CustomTransition"/>
ActivityOptionsoptions = ActivityOptions.makeSceneTransitionAnimation(activity); startActivity(intent,options.toBundle());
ActivityOptionsoptions = ActivityOptions.makeSceneTransitionAnimation(activity,view, "name"); startActivity(intent,options.toBundle());
ActivityOptionsoptions = ActivityOptions.makeSceneTransitionAnimation(activity,Pair.create(view1,"name1"),Pair.create(view2,"name2")); startActivity(intent,.toBundle());
<transitionSetxmlns:android="http://schemas.android.com/apk/res/android"> <explode/> <transition class="my.app.transition.CustomTransition"/> <<changeImageTransform/> </transitionSet>
TransitionSettransitionSet =new TransitionSet(); transitionSet.addTransition(newFade()); transitionSet.addTransition(newChangeBounds());
机械节能产品生产企业官网模板...
大气智能家居家具装修装饰类企业通用网站模板...
礼品公司网站模板
宽屏简约大气婚纱摄影影楼模板...
蓝白WAP手机综合医院类整站源码(独立后台)...苏ICP备2024110244号-2 苏公网安备32050702011978号 增值电信业务经营许可证编号:苏B2-20251499 | Copyright 2018 - 2025 源码网商城 (www.ymwmall.com) 版权所有