Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/206.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在旧的android设备上应用闪烁动画或效果?_Java_Android_Multithreading_Android Animation - Fatal编程技术网

Java 如何在旧的android设备上应用闪烁动画或效果?

Java 如何在旧的android设备上应用闪烁动画或效果?,java,android,multithreading,android-animation,Java,Android,Multithreading,Android Animation,我使用下面发布的代码来制作眨眼动画,但这段代码仍然有问题,如果用户单击按钮2次,眨眼速度会更快。以及停止线程是无效的 boolean myThreadAlive = false; private void blink(final View txt){ if(myBestThread != null){ if(!myThreadAlive) { myThreadAlive = false; if (myBestThread.

我使用下面发布的代码来制作眨眼动画,但这段代码仍然有问题,如果用户单击按钮2次,眨眼速度会更快。以及停止线程是无效的

boolean myThreadAlive = false;
private void blink(final View txt){

    if(myBestThread != null){
        if(!myThreadAlive) {
            myThreadAlive = false;
            if (myBestThread.isAlive()) {

                myBestThread.interrupt();
                try {
                    myBestThread.join();
                } catch (InterruptedException e) {
                }
            }
        }
    }

    myBestThread = new Thread(new Runnable() {
        @Override
        public void run() {
            final int timeToBlink = 1000;    //in milissegunds
            myThreadAlive= true;
            while(myThreadAlive) {
                try {Thread.sleep(timeToBlink);}catch(Exception e){}
                handler.post(new Runnable() {
                    @Override
                    public void run() {
                        if (txt.getVisibility() == View.VISIBLE) {
                            txt.setVisibility(View.INVISIBLE);
                        } else {
                            txt.setVisibility(View.VISIBLE);
                        }
                    }
                });
            }
            handler.post(new Runnable() {
                @Override
                public void run() {
                    txt.setVisibility(View.VISIBLE);}});
        }
    });
    myBestThread.start();
}

是否还有其他解决方案?

您可以使用动画类来实现此效果,如果没有,只需在res目录中创建一个anim文件夹,然后创建一个blink.xml文件

 <?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
    android:fillAfter="true">
    <alpha
        android:fromAlpha="0.0"
        android:toAlpha="1.0"
        android:duration="100"
        android:repeatCount="infinite"
        android:interpolator="@android:anim/accelerate_interpolator"
        />
</set>

只需在onCLick中调用这些行,或者当您希望动画也在blink.xml中启动时,您可以更改持续时间以使动画变慢或变快

您可以使用animation类来实现此效果,如果没有,只需在res目录中创建一个anim文件夹并创建blink.xml文件

 <?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
    android:fillAfter="true">
    <alpha
        android:fromAlpha="0.0"
        android:toAlpha="1.0"
        android:duration="100"
        android:repeatCount="infinite"
        android:interpolator="@android:anim/accelerate_interpolator"
        />
</set>

只需在onCLick中调用这些行,或者当您希望动画也在blink.xml中启动时,您可以更改持续时间以使动画变慢或变快

您可以使用animation类来实现此效果,如果没有,只需在res目录中创建一个anim文件夹并创建blink.xml文件

 <?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
    android:fillAfter="true">
    <alpha
        android:fromAlpha="0.0"
        android:toAlpha="1.0"
        android:duration="100"
        android:repeatCount="infinite"
        android:interpolator="@android:anim/accelerate_interpolator"
        />
</set>

只需在onCLick中调用这些行,或者当您希望动画也在blink.xml中启动时,您可以更改持续时间以使动画变慢或变快

您可以使用animation类来实现此效果,如果没有,只需在res目录中创建一个anim文件夹并创建blink.xml文件

 <?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
    android:fillAfter="true">
    <alpha
        android:fromAlpha="0.0"
        android:toAlpha="1.0"
        android:duration="100"
        android:repeatCount="infinite"
        android:interpolator="@android:anim/accelerate_interpolator"
        />
</set>

只需在onCLick中调用这些行,或者当您希望动画也在blink.xml中启动时,您可以更改持续时间,使您的动画在Android文档中变慢或变快

,此链接支持自Android 4.0及更高版本以来的动画,这就是为什么我使用threadsBuddy我正在使用动画类看看这里它是从API级别1提供的至少尝试一下,你正在使用的最低API级别是多少?总是很乐意帮助,也谢谢你的代码,我从来没有想到Visibility_STATE能以如此激进的方式使用:Android 4.0及更高版本支持的DIn Android文档在此链接动画,这就是为什么我使用threadsBuddy我正在使用动画类看看这里它是从API级别1提供的至少尝试一下,你正在使用的最低API级别是多少?总是很乐意帮助,也谢谢你的代码,我从来没有想到Visibility_STATE能以如此激进的方式使用:Android 4.0及更高版本支持的DIn Android文档在此链接动画,这就是为什么我使用threadsBuddy我正在使用动画类看看这里它是从API级别1提供的至少尝试一下,你正在使用的最低API级别是多少?总是很乐意帮助,也谢谢你的代码,我从来没有想到Visibility_STATE能以如此激进的方式使用:Android 4.0及更高版本支持的DIn Android文档在此链接动画,这就是我使用Threads Buddy的原因我正在使用动画类看看这里它是从API级别1提供的至少尝试一下,看看您正在使用的最低API级别是多少?总是很乐意提供帮助,也感谢您的代码我从未想到Visibility_STATE可以如此积极地使用:D