如何解决为什么GIF ImageView从中断处继续
周末愉快
我在活动中使用GIF ImageView。当我完成并开始活动时,GIF ImageView将从中断处继续。我不想要这个,我想重新启动GIF ImageView。我怎样才能做到这一点?请帮我。我将分享与GIF ImageView相关的代码。
我的播放按钮可以:
public void play(View v) {
if (mTimerRunning) {
pauseGIF();
} else {
for (int i = 0; i < textArray.length; i++) {
tv[i].setFocusable(false);
tv[i].setClickable(false);
tv[i].setBackgroundColor(Color.TRANSPARENT);
}
nextButton.setVisibility(View.INVISIBLE);
buttonBack.setVisibility(View.INVISIBLE);
favreread.setVisibility(View.INVISIBLE);
startGIF();
final Handler handler = new Handler();
handler.postDelayed(new Runnable() {
@Override
public void run() {
player2 = MediaPlayer.create(getApplicationContext(),R.raw.hop);
player2.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
@Override
public void onCompletion(MediaPlayer mp) {
stopPlayer2();
}
});
player2.start();
}
},60000);
}
}
暂停GIF:
private void pauseGIF() {
mTimerRunning = false;
if (marka.getDrawable() instanceof Animatable) { //to pause gif
((Animatable) marka.getDrawable()).stop();
}
if(android.os.Build.VERSION.SDK_INT < android.os.Build.VERSION_CODES.JELLY_BEAN) {
start.setBackgroundDrawable(ContextCompat.getDrawable(Reread1Activity.this,R.drawable.basla) );
} else {
start.setBackground(ContextCompat.getDrawable(Reread1Activity.this,R.drawable.basla));
}
}
startGIF:
private void startGIF() {
start.setVisibility(View.INVISIBLE);
Glide.with(this).asGif().load(R.raw.saat) //setting for gif to inform when finished
.apply(RequestOptions.diskCacheStrategyOf(DiskCacheStrategy.NONE)).listener(new RequestListener<GifDrawable>() {
@Override
public boolean onLoadFailed(@Nullable GlideException e,Object model,Target<GifDrawable> target,boolean isFirstResource) {
return false;
}
@Override
public boolean onResourceReady(final GifDrawable resource,DataSource dataSource,boolean isFirstResource) {
resource.setLoopCount(1);
new Thread(new Runnable() {
@Override
public void run() {
while(true)
if(!resource.isRunning()) {
runOnUiThread(new Runnable() { //to avoid some errors
@Override
public void run() {
mTimerRunning = false;
if(android.os.Build.VERSION.SDK_INT < android.os.Build.VERSION_CODES.JELLY_BEAN) {
start.setBackgroundDrawable(ContextCompat.getDrawable(Reread1Activity.this,R.drawable.basla) );
} else {
start.setBackground(ContextCompat.getDrawable(Reread1Activity.this,R.drawable.basla));
}
}
});
break;
}
}
}).start();
return false;
}
}).into(marka);
mTimerRunning = true;
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。