Skip to content

Commit

Permalink
.
Browse files Browse the repository at this point in the history
  • Loading branch information
wosojadfjgo committed Aug 25, 2019
1 parent 56bd0e4 commit 5ab02f5
Show file tree
Hide file tree
Showing 5 changed files with 437 additions and 121 deletions.
3 changes: 1 addition & 2 deletions base/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -92,9 +92,8 @@ dependencies {
api "com.squareup.okhttp3:logging-interceptor:${versions.okhttp}"
//Glide图片加载
api "com.github.bumptech.glide:glide:${versions.glide}"
annotationProcessor "androidx.annotation:annotation:${versions.androidxAnnotation}"
annotationProcessor "com.github.bumptech.glide:compiler:${versions.glide}"
kapt "com.github.bumptech.glide:compiler:${versions.glide}"
kapt "androidx.annotation:annotation:${versions.androidxAnnotation}"
//状态栏管理
api "com.gyf.immersionbar:immersionbar:${versions.immersionbar}"
api "com.gyf.immersionbar:immersionbar-components:${versions.immersionbar}"
Expand Down
6 changes: 6 additions & 0 deletions user/src/main/java/com/heyongrui/user/KotlinActivity.kt
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
package com.heyongrui.user

import android.graphics.Color
import android.graphics.drawable.ColorDrawable
import android.os.Bundle
import android.view.View
import android.widget.ImageView
Expand All @@ -26,6 +28,8 @@ class KotlinActivity<T : BasePresenter<out BaseView<*>>?> : BaseActivity<T>(), V
bg.setOnClickListener(this);
iv.loadCircle("https://img3.doubanio.com/view/photo/s_ratio_poster/public/p2551393832.jpg")
iv2.loadCircle("https://img3.doubanio.com/view/photo/s_ratio_poster/public/p2563780504.jpg")
iv3.loadCircle(ColorDrawable(Color.BLACK))
iv4.loadCircle(ColorDrawable(Color.GRAY))
}

fun ImageView.loadCircle(resource: Any) {
Expand All @@ -42,9 +46,11 @@ class KotlinActivity<T : BasePresenter<out BaseView<*>>?> : BaseActivity<T>(), V
if (id == R.id.bg) {
if (-1 == currentState) {
motionLayout.transitionToEnd();
motionLayout2.transitionToEnd();
currentState = 1;
} else if (1 == currentState) {
motionLayout.transitionToStart();
motionLayout2.transitionToStart();
currentState = -1;
}
}
Expand Down
25 changes: 25 additions & 0 deletions user/src/main/res/layout/activity_kotlin.xml
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,31 @@
android:layout_width="match_parent"
android:layout_height="match_parent" />

<androidx.constraintlayout.motion.widget.MotionLayout
android:id="@+id/motionLayout2"
android:layout_width="0dp"
android:layout_height="0dp"
app:layoutDescription="@xml/motion_scene2_kotlin"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintDimensionRatio="1"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintWidth_percent="0.8"
app:showPaths="true">

<androidx.constraintlayout.utils.widget.ImageFilterView
android:id="@+id/iv3"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />

<androidx.constraintlayout.utils.widget.ImageFilterView
android:id="@+id/iv4"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />

</androidx.constraintlayout.motion.widget.MotionLayout>

<androidx.constraintlayout.utils.widget.ImageFilterView
android:id="@+id/iv"
android:layout_width="wrap_content"
Expand Down
287 changes: 287 additions & 0 deletions user/src/main/res/xml/motion_scene2_kotlin.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,287 @@
<?xml version="1.0" encoding="utf-8"?>
<MotionScene xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">

<Transition
app:constraintSetEnd="@id/end"
app:constraintSetStart="@id/start"
app:duration="2000"
app:motionInterpolator="easeInOut">

<OnSwipe
app:dragDirection="dragDown"
app:touchAnchorId="@+id/iv3"
app:touchAnchorSide="bottom" />

<OnClick
app:clickAction="toggle"
app:targetId="@id/iv3" />

<KeyFrameSet>
<KeyPosition
app:framePosition="10"
app:keyPositionType="parentRelative"
app:motionTarget="@id/iv3"
app:pathMotionArc="startVertical"
app:percentX="0.75"
app:percentY="0.75"
app:transitionEasing="accelerate" />

<KeyPosition
app:framePosition="15"
app:keyPositionType="parentRelative"
app:motionTarget="@id/iv3"
app:pathMotionArc="startHorizontal"
app:percentX="0.5"
app:percentY="1.0"
app:transitionEasing="decelerate" />

<KeyPosition
app:framePosition="50"
app:keyPositionType="parentRelative"
app:motionTarget="@id/iv3"
app:pathMotionArc="startVertical"
app:percentX="0.0"
app:percentY="0.5"
app:transitionEasing="decelerate" />

<KeyPosition
app:framePosition="90"
app:keyPositionType="parentRelative"
app:motionTarget="@id/iv3"
app:pathMotionArc="startHorizontal"
app:percentX="0.5"
app:percentY="0.0"
app:transitionEasing="accelerate" />

<KeyPosition
app:framePosition="95"
app:keyPositionType="parentRelative"
app:motionTarget="@id/iv3"
app:pathMotionArc="startVertical"
app:percentX="0.625"
app:percentY="0.125"
app:transitionEasing="accelerate" />

<!--<KeyCycle-->
<!--app:curveFit="spline"-->
<!--app:framePosition="50"-->
<!--app:motionTarget="@id/iv"-->
<!--app:waveOffset="0"-->
<!--app:wavePeriod="1"-->
<!--app:waveShape="triangle"-->
<!--app:waveVariesBy="path" />-->

<!--<KeyAttribute-->
<!--android:scaleX="2"-->
<!--android:scaleY="2"-->
<!--app:framePosition="25"-->
<!--app:motionTarget="@id/iv3"-->
<!--app:transitionEasing="accelerate" />-->

<!--<KeyAttribute-->
<!--android:rotation="-90"-->
<!--android:scaleX="0.5"-->
<!--android:scaleY="0.5"-->
<!--app:framePosition="50"-->
<!--app:motionTarget="@id/iv3"-->
<!--app:transitionEasing="accelerate" />-->

<!--<KeyAttribute-->
<!--android:scaleX="2"-->
<!--android:scaleY="2"-->
<!--app:framePosition="75"-->
<!--app:motionTarget="@id/iv3"-->
<!--app:transitionEasing="accelerate" />-->

<KeyPosition
app:framePosition="20"
app:keyPositionType="parentRelative"
app:motionTarget="@id/iv4"
app:pathMotionArc="startVertical"
app:percentX="0.25"
app:percentY="0.25"
app:transitionEasing="decelerate" />

<KeyPosition
app:framePosition="50"
app:keyPositionType="parentRelative"
app:motionTarget="@id/iv4"
app:pathMotionArc="startHorizontal"
app:percentX="0.5"
app:percentY="0.0"
app:transitionEasing="accelerate" />

<KeyPosition
app:framePosition="70"
app:keyPositionType="parentRelative"
app:motionTarget="@id/iv4"
app:pathMotionArc="startVertical"
app:percentX="1.0"
app:percentY="0.5"
app:transitionEasing="accelerate" />

<KeyPosition
app:framePosition="80"
app:keyPositionType="parentRelative"
app:motionTarget="@id/iv4"
app:pathMotionArc="startHorizontal"
app:percentX="0.5"
app:percentY="1.0"
app:transitionEasing="decelerate" />

<KeyPosition
app:framePosition="90"
app:keyPositionType="parentRelative"
app:motionTarget="@id/iv4"
app:pathMotionArc="startVertical"
app:percentX="0.375"
app:percentY="0.875"
app:transitionEasing="decelerate" />

<!--<KeyCycle-->
<!--app:curveFit="spline"-->
<!--app:framePosition="50"-->
<!--app:motionTarget="@id/iv2"-->
<!--app:waveOffset="0"-->
<!--app:wavePeriod="1"-->
<!--app:waveShape="triangle"-->
<!--app:waveVariesBy="path" />-->

<!--<KeyAttribute-->
<!--android:scaleX="2"-->
<!--android:scaleY="2"-->
<!--app:framePosition="25"-->
<!--app:motionTarget="@id/iv4"-->
<!--app:transitionEasing="decelerate" />-->


<!--<KeyAttribute-->
<!--android:rotation="-90"-->
<!--android:scaleX="0.5"-->
<!--android:scaleY="0.5"-->
<!--app:framePosition="50"-->
<!--app:motionTarget="@id/iv4"-->
<!--app:transitionEasing="decelerate" />-->

<!--<KeyAttribute-->
<!--android:scaleX="2"-->
<!--android:scaleY="2"-->
<!--app:framePosition="75"-->
<!--app:motionTarget="@id/iv4"-->
<!--app:transitionEasing="decelerate" />-->

</KeyFrameSet>

</Transition>

<ConstraintSet android:id="@+id/start">
<Constraint
android:id="@+id/iv3"
android:layout_width="50dp"
android:layout_height="50dp"
android:rotation="0"
app:drawPath="path"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:pathMotionArc="startHorizontal"
app:transitionEasing="accelerate">
<!--<CustomAttribute-->
<!--app:attributeName="backgroundColor"-->
<!--app:customColorValue="@color/orangeColor" />-->
<!--<CustomAttribute-->
<!--app:attributeName="warmth"-->
<!--app:customFloatValue="1" />-->
<!--<CustomAttribute-->
<!--app:attributeName="contrast"-->
<!--app:customFloatValue="1" />-->
<!--<CustomAttribute-->
<!--app:attributeName="saturation"-->
<!--app:customFloatValue="1" />-->
</Constraint>

<Constraint
android:id="@+id/iv4"
android:layout_width="50dp"
android:layout_height="50dp"
android:rotation="-180"
app:drawPath="path"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:pathMotionArc="startHorizontal"
app:transitionEasing="decelerate">
<!--<CustomAttribute-->
<!--app:attributeName="backgroundColor"-->
<!--app:customColorValue="@color/gray" />-->
<!--<CustomAttribute-->
<!--app:attributeName="warmth"-->
<!--app:customFloatValue="0" />-->
<!--<CustomAttribute-->
<!--app:attributeName="contrast"-->
<!--app:customFloatValue="0" />-->
<!--<CustomAttribute-->
<!--app:attributeName="saturation"-->
<!--app:customFloatValue="0" />-->
</Constraint>
</ConstraintSet>

<ConstraintSet android:id="@+id/end">
<Constraint
android:id="@+id/iv3"
android:layout_width="50dp"
android:layout_height="50dp"
android:rotation="-180"
app:drawPath="path"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.25"
app:pathMotionArc="startVertical"
app:transitionEasing="decelerate">
<!--<CustomAttribute-->
<!--app:attributeName="backgroundColor"-->
<!--app:customColorValue="@color/gray" />-->
<!--<CustomAttribute-->
<!--app:attributeName="warmth"-->
<!--app:customFloatValue="0" />-->
<!--<CustomAttribute-->
<!--app:attributeName="contrast"-->
<!--app:customFloatValue="0" />-->
<!--<CustomAttribute-->
<!--app:attributeName="saturation"-->
<!--app:customFloatValue="0" />-->
</Constraint>

<Constraint
android:id="@+id/iv4"
android:layout_width="50dp"
android:layout_height="50dp"
android:rotation="0"
app:drawPath="path"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.75"
app:pathMotionArc="startHorizontal"
app:transitionEasing="accelerate">
<!--<CustomAttribute-->
<!--app:attributeName="backgroundColor"-->
<!--app:customColorValue="@color/orangeColor" />-->
<!--<CustomAttribute-->
<!--app:attributeName="warmth"-->
<!--app:customFloatValue="1" />-->
<!--<CustomAttribute-->
<!--app:attributeName="contrast"-->
<!--app:customFloatValue="1" />-->
<!--<CustomAttribute-->
<!--app:attributeName="saturation"-->
<!--app:customFloatValue="1" />-->
</Constraint>
</ConstraintSet>
</MotionScene>
Loading

0 comments on commit 5ab02f5

Please sign in to comment.