微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Android Java Play gif 仅一次

如何解决Android Java Play gif 仅一次

用户双击帖子时,我想要鹅播放 gif。为此,我像这样使用了 pl.droidsonroids.gif.GifImageView

<pl.droidsonroids.gif.GifImageView
            android:layout_width="match_parent"
            android:layout_height="303dp"

            android:src="@drawable/likepopgif"
            android:visibility="invisible"
            />

为了开始使用,我只是在需要时使用了可见和不可见:

 holder.imgPost.setonTouchListener(new View.OnTouchListener() {
                    @SuppressLint("ClickableViewAccessibility")
                    GestureDetector gestureDetector = new GestureDetector(getApplicationContext(),new GestureDetector.SimpleOnGestureListener(){

                        @SuppressLint("ClickableViewAccessibility")
                        @Override
                        public boolean onDoubleTap(MotionEvent e) {
                            Toast.makeText(visualizzaPost.this,"Liked post",Toast.LENGTH_SHORT).show();
                            holder.gifLike.setVisibility(View.VISIBLE);
                            holder.gifLike.setVisibility(View.INVISIBLE);
                            return super.onDoubleTap(e);
                        }
                    });
                    @Override
                    public boolean onTouch(View v,MotionEvent event) {
                        gestureDetector.onTouchEvent(event);
                        return false;
                    }
                });

然而,显然,不可见与动画长度的秒数是异步的。我正在寻找一个事件/属性或任何其他可以告诉应用程序何时播放动画然后我可以让它不可见的东西。

如果我使用 app:loopCount="1" 在循环以这种方式结束时仍然是不道德的:

enter image description here

解决方法

如果您想播放一次 gif,您可以执行以下操作:

<pl.droidsonroids.gif.GifImageView
            android:layout_width="match_parent"
            android:layout_height="303dp"

            android:src="@drawable/likepopgif"
            android:visibility="invisible"
            app:loopCount="1"
            />

如果您想知道 gif 何时结束,您可以使用 getDuration() 并检查它是否与 getCurrentPosition() 相同

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。