【问题标题】:Text Animation from left to right like shine in Android从左到右的文本动画就像 Android 中的光芒一样
【发布时间】:2017-02-23 21:05:38
【问题描述】:

我不知道它叫什么类型的动画,但我想实现它如下所示。我在 iOS 中看到了那个动画。

如你所见,slide to cancel语句会从左到右动画,就像背后有光一样。

我不知道该用什么。我尝试了一些像 Alpha 这样的动画,但无法实现。谁能帮帮我?

【问题讨论】:

  • @ViragBrahme,这不是我要寻找的...... :(
  • 没有意识到这是为 Android 设计的,所以我设置了一个 CSS 动画......我不做任何 android,但我认为这对你不起作用...... . 无论如何,这是演示:cdpn.io/BpgyE
  • @brbcoding,嗯...CSS 可以在我们的WebView 中使用。非常感谢你的努力.. :)

标签: android animation


【解决方案1】:

这是我的演示,请尝试一下

https://github.com/FrankNT/TextViewSlideEffect

问候, 弗兰克

【讨论】:

    【解决方案2】:

    这里是另一个IOS类似幻灯片的文字效果,

    https://github.com/RomainPiel/Shimmer-android

    【讨论】:

    • @ChintanRathod:谢谢...快乐编码:D
    • 非常简单明了
    【解决方案3】:

    使用Spannable

    得到解决方案

    以下是 Thread 类,它以 100 毫秒的间隔连续运行。

    class MyThread extends Thread {
        //used for stopping thread
        boolean flag; 
    
        //init flag to true so that method run continuously
        public MyThread() {
            flag = true;
        }
    
        //set flag false, if want to stop this thread
        public void setFlag(boolean flag) {
            this.flag = flag;
        }
    
        @Override
        public void run() {
            super.run();
            while (flag) {
                try {
                    Thread.sleep(intervalMiliSeconds);
                    runOnUiThread(new Runnable() {
                        @Override
                        public void run() {
    
                            Spannable spn = new SpannableString(txtView
                                    .getText().toString());
                            spn.setSpan(new ForegroundColorSpan(Color.WHITE),
                                    startPosition, endPosition,
                                    Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
                            txtView.setText(spn);
    
                            startPosition++;
                            endPosition++;
                            endPosition %= (lengthOfString + charGaps);
                            startPosition %= lengthOfString;
    
                            if (startPosition == 0) {
                                endPosition = charGaps;
                                startPosition = 0;
                            }
    
                            if (endPosition > lengthOfString) {
                                endPosition = lengthOfString;
                            }
    
                            Log.d("Home", "Start : " + startPosition + " End : " + endPosition);
    
                        }
                    });
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        }
    }
    

    要使用上述代码,请使用以下实现。

    TextView txtView = (TextView) findViewById(R.id.txtView);
    
    int charGaps = 3;
    
    int startPosition = 0;
    int endPosition = charGaps;
    
    int lengthOfString = txtView.getText().length();
    
    MyThread thread = new MyThread();
    
    thread.start();
    

    输出

    更好的答案将不胜感激.. :)

    【讨论】:

    • 这很好用!但是如何提高这个效果伴侣的速度!
    【解决方案4】:

    我认为您在谈论微光效果。 Facebook为此制作了图书馆。 它将帮助您通过更多选项从左到右显示发光效果。

    您可以在那里查看完整的文档。 Shimmer Library

    【讨论】:

      【解决方案5】:

      你有两种方法:

      1) 使用 openGL 并使用 Shaders 来制作此效果。

      2) 在文本上方创建一个包含 [透明][白色][透明] 渐变的图层并为其设置动画。

      【讨论】:

      • 嗯...尝试..稍后再找你。
      猜你喜欢
      • 2012-01-19
      • 1970-01-01
      • 2011-07-06
      • 2017-04-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-07-05
      相关资源
      最近更新 更多