小编Fel*_*x.D的帖子

在Animator.AnimatorListener中设计onAnimationCancel()的原因是什么?

Android SDK Animator显示:

public void cancel()

取消动画.与end()不同,cancel()会使动画在其轨道中停止,向其侦听器发送onAnimationCancel(Animator),然后发送onAnimationEnd(Animator)消息.

仅在动画未取消时调用某些方法.以下是AOSP的DeskClock的样本:

rotateAnimatorY.addListener(new AnimatorListenerAdapter() {
    private boolean mIsCanceled = false;

    @Override
    public void onAnimationCancel(Animator animation) {
        mIsCanceled = true;
    }

    @Override
    public void onAnimationEnd(Animator animation) {
        if (!mIsCanceled) {
            view.setRotation(0);
        }

        view.setLayerType(View.LAYER_TYPE_NONE, null);
    }
});
Run Code Online (Sandbox Code Playgroud)

onAnimationCancel()只设置一个mIsCanceled标志,所有工作都在onAnimationEnd()中完成.结合END状态和CANCEL状态,在所有情况下最多需要完成3种类型的工作:

a), cancel & end. These work can live in **onAnimationEnd()**    
b), cancel &!end. These live in **onAnimationCancel()**    
c), !cancel & end. These are annoying.
Run Code Online (Sandbox Code Playgroud)

对于c),你必须涉及像mIsCanceled这样的旗帜.

我搜索AOSP应用程序,并没有找到任何有关onAnimationCancel() …

animation android

15
推荐指数
0
解决办法
1740
查看次数

如何在Moshi中解析多个类型的json列表

有一个json列表混合了普通的String和Image对象,如下所示:

 {
  "mixList": [
    "string",
    {
      "imageUrl": "http://...",
      "height": 320,
      "width": 480
    }
  ]
}
Run Code Online (Sandbox Code Playgroud)

如何用Moshi解析?

我希望有一个List<Data>,哪里StringData extends DataImageData extends Data

android json moshi

7
推荐指数
1
解决办法
778
查看次数

当我们根本不使用GLSurface时,继续接收eglMakeCurrent失败的EGL_BAD_ALLOC报告

我的应用程序一直在关于Android 4.4.x设备,三星,xiaomi的崩溃报告......

java.lang.IllegalStateException: eglMakeCurrent failed EGL_BAD_ALLOC
   at android.view.HardwareRenderer$GlRenderer.createSurface(HardwareRenderer.java:1354)
   at android.view.HardwareRenderer$GlRenderer.createEglSurface(HardwareRenderer.java:1241)
   at android.view.HardwareRenderer$GlRenderer.initialize(HardwareRenderer.java:1058)
   at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1580)
   at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1030)
   at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:5639)
   at android.view.Choreographer$CallbackRecord.run(Choreographer.java:761)
   at android.view.Choreographer.doCallbacks(Choreographer.java:574)
   at android.view.Choreographer.doFrame(Choreographer.java:544)
   at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:747)
   at android.os.Handler.handleCallback(Handler.java:733)
   at android.os.Handler.dispatchMessage(Handler.java:95)
   at android.os.Looper.loop(Looper.java:136)
   at android.app.ActivityThread.main(ActivityThread.java:5047)
   at java.lang.reflect.Method.invokeNative(Method.java)
   at java.lang.reflect.Method.invoke(Method.java:515)
   at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:807)
   at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:623)
   at dalvik.system.NativeStart.main(NativeStart.java)
Run Code Online (Sandbox Code Playgroud)

我做了一些谷歌,但我的应用程序没有使用任何GLSurfaceView,只使用Android标准视图模块.

也许是因为我正在使用Fragment并持有太多的儿童观点?

在此输入图像描述

这不会一直发生.但当它发生时,我点击启动器图标,它只是一直崩溃.

我应该搜索的任何方向?

任何回复赞赏.

android glsurfaceview android-layout

5
推荐指数
0
解决办法
2607
查看次数

如何覆盖 buildTypes 中的 defaultConfig abiFilters

abiFilters在 android build.gradledefaultConfig 块中设置。

我想x86从发布 buildType 中排除,但找不到简单的方法来做到这一点

这是build.gradle

defaultConfig {
    ndk {
        abiFilters "armeabi", "x86"
        moduleName "cipher_v1"
        cFlags "-DRELEASE=1"
        if (rootProject.ext.has("testCrack")) {
            cFlags += " -DTEST_CRACK"
        }
        if (project.ext.has("authKey") && project.ext.has("androidId")) {
            cFlags += "-DAUTH_KEY=\\\"" + project.ext.authKey + "\\\""
            "-DANDROID_ID=\\\"" + project.ext.androidId + "\\\""
        }
    }
}

buildTypes {
   release {
        ndk {
            abiFilters "armeabi"
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

这是我得到的:

unzip -l base-release.aar|grep cipher
17752  02-01-1980 00:00   jni/armeabi/libcipher_v1.so
17640  02-01-1980 00:00   jni/x86/libcipher_v1.so
Run Code Online (Sandbox Code Playgroud)

这是我真正想要的:

unzip -l …
Run Code Online (Sandbox Code Playgroud)

android gradle android-gradle-plugin

4
推荐指数
1
解决办法
1299
查看次数