我有一个应用程序在屏幕上运行Gif,其中部分图像 SCATTERED ,但是这一刻,分散的图像将会显示原始图像
Gif也是可点击的。当应用程序运行时,Gif会自动启动。 点击Gif时,Gif会冻结。当你再次点击它时,Gif会恢复。
我希望用户体验的是在他们合并成为原始图片时停止图片。
我很难将原始图像与冻结的Gif的当前图像进行比较。我希望你能帮助我。
活动:
public class NextActivity extends Activity {
GifImageView image;
int counter =0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
setContentView(R.layout.activity_next);
image = (GifImageView) findViewById(R.id.img_1);
image.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(counter%2==0){
image.setFreezesAnimation(true);
((GifDrawable)image.getBackground()).stop();
if(image.getBackground().getCurrent().getConstantState() == ContextCompat.getDrawable(NextActivity.this,R.drawable.lvl_1).getConstantState())
{
Toast.makeText(NextActivity.this,"GOOD JOB!",Toast.LENGTH_SHORT).show();
}
else
Toast.makeText(NextActivity.this,"ALMOST!",Toast.LENGTH_SHORT).show();
counter++;
}
else{
image.setFreezesAnimation(false);
((GifDrawable)image.getBackground()).start();
counter++;
}
}
});
}
}
答案 0 :(得分:0)
您可以使用线程。
boolean flag = false;
Handler mHandler = new Handler();
pause.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if(flag)
PauseThread();
flag=!flag;
}
});
resume.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
animation.play();
flag=!flag;
}
});
public void PauseThread()
{
new Thread(new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
while (true) {
try {
Thread.sleep(10000); // 10 sec
mHandler.post(new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
// Write your code here to update the UI.
animation.stop();
//flag=!flag;
}
});
} catch (Exception e) {}
}
}
}).start();
}