{"id":692,"date":"2020-07-13T16:32:48","date_gmt":"2020-07-13T08:32:48","guid":{"rendered":"https:\/\/badgameshow.com\/fly\/?p=692"},"modified":"2021-01-19T17:58:49","modified_gmt":"2021-01-19T09:58:49","slug":"android-objectanimator%e5%b1%ac%e6%80%a7%e5%8b%95%e7%95%ab","status":"publish","type":"post","link":"https:\/\/badgameshow.com\/fly\/android-objectanimator%e5%b1%ac%e6%80%a7%e5%8b%95%e7%95%ab\/","title":{"rendered":"Android ObjectAnimator(\u5c6c\u6027\u52d5\u756b)"},"content":{"rendered":"<h3>1.\u5148\u7b97\u51fa\u624b\u6a5f\u7684\u6bd4\u4f8b \u8b93\u6bcf\u4e00\u96bb\u624b\u6a5f\u7684\u79fb\u52d5\u8ddd\u96e2\u90fd\u662f\u4e00\u6a23\u7684<\/h3>\n<pre><code class=\"language-Kotlin line-numbers\">val metric = DisplayMetrics()\nfragment.activity!!.windowManager.defaultDisplay.getMetrics(metric)\n\n\/\/\u7e2e\u653e\u6bd4\nval scale = 1080f \/ metric.widthPixels\neditMoveLeft = -190f \/ scale\ntitleMoveTop = -70f \/ scale\ntitleMoveRight = 5f \/ scale\n<\/code><\/pre>\n<h3>2.Layout\u5e03\u5c40<\/h3>\n<pre><code class=\"language-XML line-numbers\">&lt;?xml version=\"1.0\" encoding=\"utf-8\"?&gt;\n&lt;layout xmlns:android=\"http:\/\/schemas.android.com\/apk\/res\/android\"\n    xmlns:app=\"http:\/\/schemas.android.com\/apk\/res-auto\"\n    xmlns:tools=\"http:\/\/schemas.android.com\/tools\"&gt;\n\n\n    &lt;data&gt;\n        &lt;variable\n            name=\"viewCtrl\"\n            type=\"com.doughpack.RegisterStepOneCtrl\" \/&gt;\n    &lt;\/data&gt;\n\n    &lt;android.support.constraint.ConstraintLayout\n        android:id=\"@+id\/container\"\n        android:layout_width=\"match_parent\"\n        android:layout_height=\"match_parent\"\n        android:background=\"@drawable\/register_container_shape\"&gt;\n\n\n        &lt;TextView\n            android:id=\"@+id\/account\"\n            style=\"@style\/register_text_style\"\n            android:layout_width=\"wrap_content\"\n            android:layout_height=\"wrap_content\"\n            android:layout_marginStart=\"8dp\"\n            android:layout_marginTop=\"8dp\"\n            android:text=\"@string\/account\"\n            app:layout_constraintBottom_toTopOf=\"@+id\/guideline50\"\n            app:layout_constraintStart_toStartOf=\"@+id\/guideline40\"\n            app:layout_constraintTop_toTopOf=\"@+id\/guideline43\" \/&gt;\n\n        &lt;TextView\n            android:id=\"@+id\/captcha\"\n            style=\"@style\/register_text_style\"\n            android:layout_width=\"wrap_content\"\n            android:layout_height=\"wrap_content\"\n            android:layout_marginStart=\"8dp\"\n            android:layout_marginTop=\"8dp\"\n            android:text=\"@string\/captcha\"\n            app:layout_constraintBottom_toTopOf=\"@+id\/guideline51\"\n            app:layout_constraintStart_toStartOf=\"@+id\/guideline40\"\n            app:layout_constraintTop_toTopOf=\"@+id\/guideline50\" \/&gt;\n\n        &lt;TextView\n            android:id=\"@+id\/password\"\n            style=\"@style\/register_text_style\"\n            android:layout_width=\"wrap_content\"\n            android:layout_height=\"wrap_content\"\n            android:layout_marginStart=\"8dp\"\n            android:layout_marginTop=\"8dp\"\n            android:text=\"@string\/password\"\n            app:layout_constraintBottom_toTopOf=\"@+id\/guideline52\"\n            app:layout_constraintStart_toStartOf=\"@+id\/guideline40\"\n            app:layout_constraintTop_toTopOf=\"@+id\/guideline51\" \/&gt;\n\n        &lt;TextView\n            android:id=\"@+id\/confirm_password\"\n            style=\"@style\/register_text_style\"\n            android:layout_width=\"wrap_content\"\n            android:layout_height=\"wrap_content\"\n            android:layout_marginStart=\"8dp\"\n            android:layout_marginTop=\"8dp\"\n            android:text=\"@string\/confirm_password\"\n            app:layout_constraintBottom_toTopOf=\"@+id\/guideline53\"\n            app:layout_constraintStart_toStartOf=\"@+id\/guideline40\"\n            app:layout_constraintTop_toTopOf=\"@+id\/guideline52\" \/&gt;\n\n        &lt;TextView\n            android:id=\"@+id\/invite_code\"\n            style=\"@style\/register_text_style\"\n            android:layout_width=\"wrap_content\"\n            android:layout_height=\"wrap_content\"\n            android:layout_marginStart=\"8dp\"\n            android:layout_marginTop=\"8dp\"\n            android:text=\"@string\/invite_code\"\n            app:layout_constraintBottom_toTopOf=\"@+id\/guideline49\"\n            app:layout_constraintStart_toStartOf=\"@+id\/guideline40\"\n            app:layout_constraintTop_toTopOf=\"@+id\/guideline53\" \/&gt;\n\n        &lt;EditText\n            android:id=\"@+id\/edit_account\"\n            android:layout_width=\"0dp\"\n            android:layout_height=\"wrap_content\"\n            android:layout_marginStart=\"16dp\"\n            android:layout_marginEnd=\"16dp\"\n            android:background=\"@null\"\n            android:ems=\"10\"\n            android:hint=\"@string\/input_phoneNumber\"\n            android:inputType=\"phone\"\n            android:maxLength=\"10\"\n            android:textSize=\"14sp\"\n            app:layout_constraintBottom_toBottomOf=\"@+id\/account\"\n            app:layout_constraintEnd_toStartOf=\"@+id\/isCaptcha\"\n            app:layout_constraintStart_toStartOf=\"@+id\/guideline39\"\n            app:layout_constraintTop_toTopOf=\"@+id\/account\"\n            tools:ignore=\"Autofill\" \/&gt;\n\n        &lt;EditText\n            android:maxLength=\"4\"\n            android:id=\"@+id\/edit_captcha\"\n            android:layout_width=\"0dp\"\n            android:layout_height=\"wrap_content\"\n            android:layout_marginStart=\"16dp\"\n            android:layout_marginEnd=\"50dp\"\n            android:background=\"@null\"\n            android:ems=\"10\"\n            android:hint=\"@string\/input_captcha\"\n            android:inputType=\"numberDecimal\"\n            android:textSize=\"14sp\"\n            app:layout_constraintBottom_toBottomOf=\"@+id\/captcha\"\n            app:layout_constraintEnd_toEndOf=\"parent\"\n            app:layout_constraintStart_toStartOf=\"@+id\/guideline39\"\n            app:layout_constraintTop_toTopOf=\"@+id\/captcha\"\n            tools:ignore=\"Autofill\" \/&gt;\n\n        &lt;EditText\n            android:maxLength=\"15\"\n            android:id=\"@+id\/edit_password\"\n            android:layout_width=\"0dp\"\n            android:layout_height=\"wrap_content\"\n            android:layout_marginStart=\"16dp\"\n            android:layout_marginEnd=\"50dp\"\n            android:background=\"@null\"\n            android:ems=\"10\"\n            android:hint=\"@string\/input_password\"\n            android:inputType=\"textPassword\"\n            android:textSize=\"14sp\"\n            app:layout_constraintBottom_toBottomOf=\"@+id\/password\"\n            app:layout_constraintEnd_toEndOf=\"parent\"\n            app:layout_constraintStart_toStartOf=\"@+id\/guideline39\"\n            app:layout_constraintTop_toTopOf=\"@+id\/password\"\n            tools:ignore=\"Autofill\" \/&gt;\n\n        &lt;EditText\n            android:maxLength=\"15\"\n            android:id=\"@+id\/edit_confrim_password\"\n            android:layout_width=\"0dp\"\n            android:layout_height=\"wrap_content\"\n            android:layout_marginStart=\"16dp\"\n            android:layout_marginEnd=\"50dp\"\n            android:background=\"@null\"\n            android:ems=\"10\"\n            android:hint=\"@string\/input_again_password\"\n            android:inputType=\"textPassword\"\n            android:textSize=\"14sp\"\n            app:layout_constraintBottom_toBottomOf=\"@+id\/confirm_password\"\n            app:layout_constraintEnd_toEndOf=\"parent\"\n            app:layout_constraintStart_toStartOf=\"@+id\/guideline39\"\n            app:layout_constraintTop_toTopOf=\"@+id\/confirm_password\"\n            tools:ignore=\"Autofill\" \/&gt;\n\n        &lt;EditText\n            android:id=\"@+id\/edit_invite_code\"\n            android:layout_width=\"0dp\"\n            android:layout_height=\"wrap_content\"\n            android:layout_marginStart=\"16dp\"\n            android:layout_marginEnd=\"50dp\"\n            android:background=\"@null\"\n            android:ems=\"10\"\n            android:hint=\"@string\/choice\"\n            android:inputType=\"textPersonName\"\n            android:textSize=\"14sp\"\n            app:layout_constraintBottom_toBottomOf=\"@+id\/invite_code\"\n            app:layout_constraintEnd_toEndOf=\"parent\"\n            app:layout_constraintStart_toStartOf=\"@+id\/guideline39\"\n            app:layout_constraintTop_toTopOf=\"@+id\/invite_code\"\n            tools:ignore=\"Autofill\" \/&gt;\n\n        &lt;View\n            android:id=\"@+id\/view\"\n            android:layout_width=\"0dp\"\n            android:layout_height=\"2dp\"\n            android:layout_marginEnd=\"32dp\"\n            android:layout_marginBottom=\"6dp\"\n            android:background=\"#D1D1D1\"\n            app:layout_constraintBottom_toTopOf=\"@+id\/guideline50\"\n            app:layout_constraintEnd_toEndOf=\"parent\"\n            app:layout_constraintStart_toStartOf=\"@+id\/account\"\n            app:layout_constraintTop_toBottomOf=\"@+id\/edit_account\" \/&gt;\n\n        &lt;View\n            android:id=\"@+id\/view16\"\n            android:layout_width=\"0dp\"\n            android:layout_height=\"2dp\"\n            android:layout_marginEnd=\"32dp\"\n            android:layout_marginBottom=\"6dp\"\n            android:background=\"#D1D1D1\"\n            app:layout_constraintBottom_toTopOf=\"@+id\/guideline51\"\n            app:layout_constraintEnd_toEndOf=\"parent\"\n            app:layout_constraintStart_toStartOf=\"@+id\/captcha\"\n            app:layout_constraintTop_toBottomOf=\"@+id\/edit_captcha\" \/&gt;\n\n        &lt;View\n            android:id=\"@+id\/view17\"\n            android:layout_width=\"0dp\"\n            android:layout_height=\"2dp\"\n            android:layout_marginEnd=\"32dp\"\n            android:layout_marginBottom=\"6dp\"\n            android:background=\"#D1D1D1\"\n            app:layout_constraintBottom_toTopOf=\"@+id\/guideline52\"\n            app:layout_constraintEnd_toEndOf=\"parent\"\n            app:layout_constraintStart_toStartOf=\"@+id\/password\"\n            app:layout_constraintTop_toBottomOf=\"@+id\/edit_password\" \/&gt;\n\n        &lt;View\n            android:id=\"@+id\/view18\"\n            android:layout_width=\"0dp\"\n            android:layout_height=\"2dp\"\n            android:layout_marginEnd=\"32dp\"\n            android:layout_marginBottom=\"6dp\"\n            android:background=\"#D1D1D1\"\n            app:layout_constraintBottom_toTopOf=\"@+id\/guideline53\"\n            app:layout_constraintEnd_toEndOf=\"parent\"\n            app:layout_constraintStart_toStartOf=\"@+id\/confirm_password\"\n            app:layout_constraintTop_toBottomOf=\"@+id\/edit_confrim_password\" \/&gt;\n\n        &lt;View\n            android:id=\"@+id\/view19\"\n            android:layout_width=\"0dp\"\n            android:layout_height=\"2dp\"\n            android:layout_marginEnd=\"32dp\"\n            android:layout_marginBottom=\"6dp\"\n            android:background=\"#D1D1D1\"\n            app:layout_constraintBottom_toTopOf=\"@+id\/guideline49\"\n            app:layout_constraintEnd_toEndOf=\"parent\"\n            app:layout_constraintStart_toStartOf=\"@+id\/invite_code\"\n            app:layout_constraintTop_toBottomOf=\"@+id\/edit_invite_code\" \/&gt;\n\n        &lt;android.support.constraint.Guideline\n            android:id=\"@+id\/guideline39\"\n            android:layout_width=\"wrap_content\"\n            android:layout_height=\"wrap_content\"\n            android:orientation=\"vertical\"\n            app:layout_constraintGuide_percent=\"0.25\" \/&gt;\n\n        &lt;android.support.constraint.Guideline\n            android:id=\"@+id\/guideline40\"\n            android:layout_width=\"wrap_content\"\n            android:layout_height=\"wrap_content\"\n            android:orientation=\"vertical\"\n            app:layout_constraintGuide_percent=\"0.06\" \/&gt;\n\n        &lt;android.support.constraint.Guideline\n            android:id=\"@+id\/guideline43\"\n            android:layout_width=\"wrap_content\"\n            android:layout_height=\"wrap_content\"\n            android:orientation=\"horizontal\"\n            app:layout_constraintGuide_begin=\"37dp\" \/&gt;\n\n        &lt;ImageView\n            android:id=\"@+id\/imageView13\"\n            android:layout_width=\"15dp\"\n            android:layout_height=\"15dp\"\n            app:layout_constraintBottom_toTopOf=\"@+id\/guideline45\"\n            app:layout_constraintEnd_toStartOf=\"@+id\/guideline39\"\n            app:layout_constraintStart_toStartOf=\"@+id\/guideline40\"\n            app:layout_constraintTop_toTopOf=\"@+id\/guideline49\"\n            app:srcCompat=\"@drawable\/note\"\n            tools:ignore=\"ContentDescription\" \/&gt;\n\n        &lt;TextView\n            android:id=\"@+id\/textView12\"\n            android:layout_width=\"wrap_content\"\n            android:layout_height=\"wrap_content\"\n            android:layout_marginStart=\"16dp\"\n            android:text=\"@string\/register_member_rule\"\n            android:textColor=\"#585858\"\n            android:textSize=\"14sp\"\n            app:layout_constraintBottom_toTopOf=\"@+id\/guideline45\"\n            app:layout_constraintStart_toEndOf=\"@+id\/imageView13\"\n            app:layout_constraintTop_toTopOf=\"@+id\/guideline49\" \/&gt;\n\n        &lt;android.support.constraint.Guideline\n            android:id=\"@+id\/guideline45\"\n            android:layout_width=\"wrap_content\"\n            android:layout_height=\"wrap_content\"\n            android:orientation=\"horizontal\"\n            app:layout_constraintGuide_percent=\"0.77\" \/&gt;\n\n        &lt;CheckBox\n            android:id=\"@+id\/agree\"\n            android:layout_width=\"26dp\"\n            android:layout_height=\"26dp\"\n            android:background=\"@drawable\/selector_cb_check\"\n            android:button=\"@null\"\n            android:gravity=\"center\"\n            app:layout_constraintBottom_toTopOf=\"@+id\/guideline46\"\n            app:layout_constraintEnd_toStartOf=\"@+id\/guideline39\"\n            app:layout_constraintStart_toStartOf=\"@+id\/guideline40\"\n            app:layout_constraintTop_toTopOf=\"@+id\/guideline45\" \/&gt;\n\n        &lt;CheckBox\n            android:id=\"@+id\/agree2\"\n            android:layout_width=\"26dp\"\n            android:layout_height=\"26dp\"\n            android:background=\"@drawable\/selector_cb_check\"\n            android:button=\"@null\"\n            android:gravity=\"center\"\n            app:layout_constraintBottom_toTopOf=\"@+id\/guideline47\"\n            app:layout_constraintEnd_toStartOf=\"@+id\/guideline39\"\n            app:layout_constraintStart_toStartOf=\"@+id\/guideline40\"\n            app:layout_constraintTop_toTopOf=\"@+id\/guideline46\" \/&gt;\n\n        &lt;TextView\n            android:id=\"@+id\/textView20\"\n            android:layout_width=\"wrap_content\"\n            android:layout_height=\"wrap_content\"\n            android:text=\"@string\/agree\"\n            android:textColor=\"#000000\"\n            app:layout_constraintBottom_toTopOf=\"@+id\/guideline46\"\n            app:layout_constraintStart_toStartOf=\"@+id\/guideline48\"\n            app:layout_constraintTop_toTopOf=\"@+id\/guideline45\" \/&gt;\n\n        &lt;android.support.constraint.Guideline\n            android:id=\"@+id\/guideline46\"\n            android:layout_width=\"wrap_content\"\n            android:layout_height=\"wrap_content\"\n            android:orientation=\"horizontal\"\n            app:layout_constraintGuide_percent=\"0.86\" \/&gt;\n\n        &lt;android.support.constraint.Guideline\n            android:id=\"@+id\/guideline47\"\n            android:layout_width=\"wrap_content\"\n            android:layout_height=\"wrap_content\"\n            android:orientation=\"horizontal\"\n            app:layout_constraintGuide_percent=\"0.95\" \/&gt;\n\n        &lt;TextView\n            android:id=\"@+id\/textView85\"\n            android:layout_width=\"wrap_content\"\n            android:layout_height=\"wrap_content\"\n            android:text=\"@string\/agree\"\n            android:textColor=\"#000000\"\n            app:layout_constraintBottom_toTopOf=\"@+id\/guideline47\"\n            app:layout_constraintStart_toStartOf=\"@+id\/guideline48\"\n            app:layout_constraintTop_toTopOf=\"@+id\/guideline46\" \/&gt;\n\n        &lt;android.support.constraint.Guideline\n            android:id=\"@+id\/guideline48\"\n            android:layout_width=\"wrap_content\"\n            android:layout_height=\"wrap_content\"\n            android:orientation=\"vertical\"\n            app:layout_constraintGuide_percent=\"0.22\" \/&gt;\n\n        &lt;android.support.constraint.Guideline\n            android:id=\"@+id\/guideline49\"\n            android:layout_width=\"wrap_content\"\n            android:layout_height=\"wrap_content\"\n            android:orientation=\"horizontal\"\n            app:layout_constraintGuide_percent=\"0.65\" \/&gt;\n\n        &lt;android.support.constraint.Guideline\n            android:id=\"@+id\/guideline50\"\n            android:layout_width=\"wrap_content\"\n            android:layout_height=\"wrap_content\"\n            android:orientation=\"horizontal\"\n            app:layout_constraintGuide_percent=\"0.17\" \/&gt;\n\n        &lt;android.support.constraint.Guideline\n            android:id=\"@+id\/guideline51\"\n            android:layout_width=\"wrap_content\"\n            android:layout_height=\"wrap_content\"\n            android:orientation=\"horizontal\"\n            app:layout_constraintGuide_percent=\"0.29\" \/&gt;\n\n        &lt;android.support.constraint.Guideline\n            android:id=\"@+id\/guideline52\"\n            android:layout_width=\"wrap_content\"\n            android:layout_height=\"wrap_content\"\n            android:orientation=\"horizontal\"\n            app:layout_constraintGuide_percent=\"0.41\" \/&gt;\n\n        &lt;android.support.constraint.Guideline\n            android:id=\"@+id\/guideline53\"\n            android:layout_width=\"wrap_content\"\n            android:layout_height=\"wrap_content\"\n            android:orientation=\"horizontal\"\n            app:layout_constraintGuide_percent=\"0.53\" \/&gt;\n\n        &lt;Button\n            android:onClick=\"@{viewCtrl::getCodeClick}\"\n            android:id=\"@+id\/isCaptcha\"\n            android:layout_width=\"wrap_content\"\n            android:layout_height=\"0dp\"\n            android:layout_marginBottom=\"8dp\"\n            android:background=\"@drawable\/register_button\"\n            android:text=\"@string\/getCode\"\n            android:textColor=\"#ffffff\"\n            android:textSize=\"12sp\"\n            android:visibility=\"gone\"\n            app:layout_constraintBottom_toTopOf=\"@+id\/view\"\n            app:layout_constraintEnd_toEndOf=\"@+id\/view\"\n            app:layout_constraintTop_toTopOf=\"@+id\/guideline43\" \/&gt;\n\n        &lt;TextView\n            android:id=\"@+id\/textView86\"\n            android:layout_width=\"wrap_content\"\n            android:layout_height=\"wrap_content\"\n            android:layout_marginStart=\"8dp\"\n            android:text=\"\u6703\u54e1\u6b0a\u76ca\u689d\u6b3e\"\n            android:textColor=\"#46A79C\"\n            app:layout_constraintBottom_toBottomOf=\"@+id\/textView20\"\n            app:layout_constraintStart_toEndOf=\"@+id\/textView20\"\n            app:layout_constraintTop_toTopOf=\"@+id\/textView20\" \/&gt;\n\n        &lt;TextView\n            android:id=\"@+id\/textView88\"\n            android:layout_width=\"wrap_content\"\n            android:layout_height=\"wrap_content\"\n            android:layout_marginStart=\"8dp\"\n            android:text=\"\u96b1\u79c1\u6b0a\u689d\u6b3e\"\n            android:textColor=\"#46A79C\"\n            app:layout_constraintBottom_toBottomOf=\"@+id\/textView85\"\n            app:layout_constraintStart_toEndOf=\"@+id\/textView85\"\n            app:layout_constraintTop_toTopOf=\"@+id\/textView85\" \/&gt;\n\n        &lt;View\n            android:background=\"#46A79C\"\n            android:id=\"@+id\/view15\"\n            android:layout_width=\"0dp\"\n            android:layout_height=\"1dp\"\n            app:layout_constraintEnd_toEndOf=\"@+id\/textView86\"\n            app:layout_constraintStart_toStartOf=\"@+id\/textView86\"\n            app:layout_constraintTop_toBottomOf=\"@+id\/textView86\" \/&gt;\n\n        &lt;View\n            android:id=\"@+id\/view20\"\n            android:layout_width=\"0dp\"\n            android:layout_height=\"1dp\"\n            android:background=\"#46A79C\"\n            app:layout_constraintEnd_toEndOf=\"@+id\/textView88\"\n            app:layout_constraintStart_toStartOf=\"@+id\/textView88\"\n            app:layout_constraintTop_toBottomOf=\"@+id\/textView88\" \/&gt;\n\n\n    &lt;\/android.support.constraint.ConstraintLayout&gt;\n&lt;\/layout&gt;\n<\/code><\/pre>\n<h3>3.\u8a2d\u5b9a\u958b\u59cb\u52d5\u756b<\/h3>\n<pre><code class=\"language-Kotlin line-numbers\">private fun beginAnimation(v: View?, text: TextView) {           \n    ObjectAnimator.ofFloat(v, \"translationX\", 0f, editMoveLeft).setDuration(500).start()\n    ObjectAnimator.ofFloat(text, \"translationY\", 0f, titleMoveTop).setDuration(500).start()\n    ObjectAnimator.ofFloat(text, \"translationX\", 0f, titleMoveRight).setDuration(500).start()\n    ObjectAnimator.ofFloat(text, \"scaleX\", 1f, 0.9f).setDuration(500).start()\n    ObjectAnimator.ofFloat(text, \"scaleY\", 1f, 0.9f).setDuration(500).start()\n    val circle = fragment.resources.getDrawable(R.drawable.register_circle)\n    view.compoundDrawablePadding = 20\n    view.setCompoundDrawablesWithIntrinsicBounds(circle, null, null, null)\n}\n<\/code><\/pre>\n<h3>4.\u8a2d\u5b9a\u7d50\u675f\u52d5\u756b<\/h3>\n<pre><code class=\"language-Kotlin line-numbers\">private fun endAnimation(v: View?, text: TextView) {\n    ObjectAnimator.ofFloat(v, \"translationX\", editMoveLeft, 0f).setDuration(1000).start()\n    ObjectAnimator.ofFloat(text, \"translationY\", titleMoveTop, 0f).setDuration(1000).start()\n    ObjectAnimator.ofFloat(text, \"translationX\", titleMoveRight, 0f).setDuration(1000).start()\n    ObjectAnimator.ofFloat(text, \"scaleX\", 0.9f, 1f).setDuration(1000).start()\n    ObjectAnimator.ofFloat(text, \"scaleY\", 0.9f, 1f).setDuration(1000).start()\n    text.compoundDrawablePadding = 0\n    text.setCompoundDrawablesWithIntrinsicBounds(null, null, null, null)\n }\n<\/code><\/pre>\n<h3>5.\u76e3\u807d\u662f\u5426\u6703\u53d6\u7126\u9ede(\u6709\u958b\u59cb\u52d5\u756b,\u6c92\u6709\u7d50\u675f\u52d5\u756b)<\/h3>\n<pre><code class=\"language-Kotlin line-numbers\">binding.editAccount.onFocusChangeListener = this\nbinding.editPassword.onFocusChangeListener = this\nbinding.editCaptcha.onFocusChangeListener = this\nbinding.editConfrimPassword.onFocusChangeListener = this\nbinding.editInviteCode.onFocusChangeListener = this\n<\/code><\/pre>\n<pre><code class=\"language-Kotlin line-numbers\"> override fun onFocusChange(v: View?, hasFocus: Boolean) {\n        when (v?.id) {\n            R.id.edit_account -&gt; {\n                if (hasFocus) {\n                    beginAnimation(v, binding.account)\n                } else {\n                    endAnimation(v, binding.account)\n                }\n            }\n            R.id.edit_captcha -&gt; {\n                if (hasFocus) {\n                    beginAnimation(v, binding.captcha)\n                } else {\n                    endAnimation(v, binding.captcha)\n                }\n            }\n            R.id.edit_password -&gt; {\n                if (hasFocus) {\n                    beginAnimation(v, binding.password)\n                } else {\n                    endAnimation(v, binding.password)\n                }\n            }\n            R.id.edit_confrim_password -&gt; {\n                if (hasFocus) {\n                    beginAnimation(v, binding.confirmPassword)\n                } else {\n                    endAnimation(v, binding.confirmPassword)\n                }\n            }\n            R.id.edit_invite_code -&gt; {\n                if (hasFocus) {\n                    beginAnimation(v, binding.inviteCode)\n                } else {\n                    endAnimation(v, binding.inviteCode)\n                }\n            }\n        }\n    }\n<\/code><\/pre>\n<h3>6.\u5c55\u793a\u7d50\u679c<\/h3>\n<p><img decoding=\"async\" src=\"https:\/\/badgameshow.com\/fly\/wp-content\/uploads\/2020\/07\/ObjectAnimator.gif\" alt=\"\" \/><\/p>\n\n<div style=\"font-size: 0px; height: 0px; line-height: 0px; margin: 0; padding: 0; clear: both;\"><\/div>","protected":false},"excerpt":{"rendered":"<p>1.\u5148\u7b97\u51fa\u624b\u6a5f\u7684\u6bd4\u4f8b \u8b93\u6bcf\u4e00\u96bb\u624b\u6a5f\u7684\u79fb\u52d5\u8ddd\u96e2\u90fd\u662f\u4e00\u6a23\u7684 val metric = DisplayMetrics &hellip; <\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"pgc_sgb_lightbox_settings":"","footnotes":""},"categories":[5],"tags":[13,29,15],"class_list":["post-692","post","type-post","status-publish","format-standard","hentry","category-android","tag-android","tag-animation","tag-kotlin"],"_links":{"self":[{"href":"https:\/\/badgameshow.com\/fly\/wp-json\/wp\/v2\/posts\/692","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/badgameshow.com\/fly\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/badgameshow.com\/fly\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/badgameshow.com\/fly\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/badgameshow.com\/fly\/wp-json\/wp\/v2\/comments?post=692"}],"version-history":[{"count":3,"href":"https:\/\/badgameshow.com\/fly\/wp-json\/wp\/v2\/posts\/692\/revisions"}],"predecessor-version":[{"id":696,"href":"https:\/\/badgameshow.com\/fly\/wp-json\/wp\/v2\/posts\/692\/revisions\/696"}],"wp:attachment":[{"href":"https:\/\/badgameshow.com\/fly\/wp-json\/wp\/v2\/media?parent=692"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/badgameshow.com\/fly\/wp-json\/wp\/v2\/categories?post=692"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/badgameshow.com\/fly\/wp-json\/wp\/v2\/tags?post=692"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}