5

मैं ConstraintLayout के साथ बिंदु ए से बिंदु बी के साथ किसी ऑब्जेक्ट को एनिमेट करने का सबसे आसान तरीका ढूंढ रहा हूं, इसकी अवधि और त्वरण गति को बदलने की क्षमता के साथ। उदाहरण के लिए, स्क्रीन पर सेट की गई बाधाओं के साथ ऑफ स्क्रीन तल से इसकी इच्छित स्थिति में लेआउट/व्यू ले जाना। मैं ConstraintLayout के साथ ऑब्जेक्ट्स के लिए इसे कैसे करने में सक्षम नहीं हूं। कोई मुझे सही दिशा में इंगित कर सकता है? धन्यवाद।स्क्रीन के नीचे से ऊपर तक ConstraintLayout को एनिमेट कैसे करें?

उत्तर

6

इस xml के रूप में सामग्री को देखने के बाद:

<?xml version="1.0" encoding="utf-8"?> 
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    android:id="@+id/constraint_layout" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 

    <Button 
     android:id="@+id/button" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_marginBottom="8dp" 
     android:layout_marginEnd="8dp" 
     android:layout_marginStart="8dp" 
     android:layout_marginTop="8dp" 
     android:text="Button" 
     app:layout_constraintBottom_toBottomOf="parent" 
     app:layout_constraintEnd_toEndOf="parent" 
     app:layout_constraintHorizontal_bias="0.0" 
     app:layout_constraintStart_toStartOf="parent" 
     app:layout_constraintTop_toTopOf="parent" 
     app:layout_constraintVertical_bias="0.0" /> 

</android.support.constraint.ConstraintLayout> 

और इस गतिविधि में:

class SecondActivity : AppCompatActivity() { 

    override fun onCreate(savedInstanceState: Bundle?) { 
     super.onCreate(savedInstanceState) 
     setContentView(R.layout.item) 

     val constraintLayout = findViewById(R.id.constraint_layout) as ConstraintLayout 
     val button = findViewById(R.id.button) 

     button.setOnClickListener { 
      val constraintSet = ConstraintSet() 
      constraintSet.clone(constraintLayout) 
      constraintSet.setVerticalBias(R.id.button, 1.0f) 
      constraintSet.setHorizontalBias(R.id.button, 1.0f) 

      val transition = AutoTransition() 
      transition.duration = 1500 
      transition.interpolator = AccelerateDecelerateInterpolator() 

      TransitionManager.beginDelayedTransition(constraintLayout, transition) 
      constraintSet.applyTo(constraintLayout) 
     } 
    } 
} 

इस उत्पादन में परिणाम होगा:

enter image description here

देखें this article और this presentation अधिक जानकारी के लिए विवरण।

संबंधित मुद्दे