Tôi đã cố gắng tạo nội suy tùy chỉnh của mình theo GUI API của Android. Vì vậy, đây là nội suy.Nội suy tùy chỉnh Android với xml
<?xml version="1.0" encoding="utf-8"?>
<customInterpolator xmlns:android="http://schemas.android.com/apk/res/android"
android:factor="2"
/>
Nhưng khi tôi cố gắng sử dụng nó trong hoạt hình:
<?xml version="1.0" encoding="utf-8"?>
<scale xmlns:android="http://schemas.android.com/apk/res/android">
android:fromXScale="1"
android:toXScale="5"
android:duration="3000"
android:interpolator="@anim/custom_interpolator"/>
</scale>
Và không có gì xảy ra - quan điểm chỉ làm mới bản thân. Tại sao vậy ? Và tại sao nếu tôi cố gắng sử dụng là theo cách đó:
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<scale
android:fromXScale="1"
android:toXScale="5"
android:duration="3000"
android:interpolator="@anim/custom_interpolator"/>
</set>
với mã này:
AnimationSet animation = (AnimationSet)AnimationUtils.loadAnimation(AnimationActivity.this, R.anim.animation);
animationView.startAnimation(animation);
một trường hợp ngoại lệ được ném:
java.lang.RuntimeException: Unknown interpolator name: customInterpolator
at android.view.animation.AnimationUtils.createInterpolatorFromXml(AnimationUtils.java:422)
at android.view.animation.AnimationUtils.loadInterpolator(AnimationUtils.java:285)
at android.view.animation.Animation.setInterpolator(Animation.java:391)
at android.view.animation.Animation.<init>(Animation.java:255)
at android.view.animation.ScaleAnimation.<init>(ScaleAnimation.java:63)
at android.view.animation.AnimationUtils.createAnimationFromXml(AnimationUtils.java:119)
at android.view.animation.AnimationUtils.createAnimationFromXml(AnimationUtils.java:115)
at android.view.animation.AnimationUtils.createAnimationFromXml(AnimationUtils.java:92)
at android.view.animation.AnimationUtils.loadAnimation(AnimationUtils.java:73)
at com.example.someone.studyproject.AnimationActivity$4.onClick(AnimationActivity.java:61)
at android.view.View.performClick(View.java:4633)
at android.view.View$PerformClick.run(View.java:19330)
at android.os.Handler.handleCallback(Handler.java:733)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:157)
at android.app.ActivityThread.main(ActivityThread.java:5356)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1265)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1081)
at dalvik.system.NativeStart.main(Native Method)
Đó là lạ, tôi không bao giờ tạo của tôi tùy chỉnh nội suy với xml (Tôi muốn làm điều đó trong xml chỉ để thực hành nó). Cảm ơn trước.
Bây giờ tôi thử:
<scale
android:fromXScale="1"
android:toXScale="5"
android:pivotX="50%"
android:pivotY="50%"
android:duration="3000"/>
và điều này không hoạt động - hình ảnh biến mất và sau 5 giây nó đã trở lại. Tại sao vậy ? Tại sao hình ảnh biến mất thay vì thay đổi kích thước?