问题描述
周末愉快
我在活动中使用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 (将#修改为@)