public
class
MainActivity
extends
Activity
implements
OnClickListener,
OnSeekBarChangeListener
{
private
ImageButton imageButton;
private
SeekBar seekBar;
private
TextView textView_playtime;
private
boolean
isPlay =
false
;
private
Chronometer mTimer;
private
TextView textView_lasttime;
private
long
firstClickTime =
0
;
@Override
protected
void
onCreate(Bundle savedInstanceState)
{
super
.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
imageButton = (ImageButton) findViewById(R.id.imageButton1);
seekBar = (SeekBar) findViewById(R.id.seekBar1);
textView_playtime = (TextView) findViewById(R.id.textView_playtime);
textView_lasttime = (TextView) findViewById(R.id.textView_lasttime);
mTimer = (Chronometer) findViewById(R.id.chronometer1);
imageButton.setOnClickListener(
this
);
seekBar.setOnSeekBarChangeListener(
this
);
seekBar.setMax(lastTime());
}
@Override
public
boolean
onCreateOptionsMenu(Menu menu)
{
getMenuInflater().inflate(R.menu.activity_main, menu);
return
true
;
}
@Override
public
void
onClick(View v)
{
switch
(v.getId())
{
case
R.id.imageButton1:
imgClick();
break
;
default
:
break
;
}
}
private
void
imgClick()
{
long
secondClickTime = System.currentTimeMillis();
if
(secondClickTime - firstClickTime <
1000
)
{
return
;
}
firstClickTime = System.currentTimeMillis();
isPlay = !isPlay;
if
(isPlay)
{
imageButton.setImageResource(R.drawable.ic_play);
play();
}
else
{
imageButton.setImageResource(R.drawable.ic_pause);
}
}
private
int
playTime;
private
Runnable action =
null
;
private
void
play()
{
new
Thread()
{
public
void
run()
{
action =
new
Runnable()
{
@Override
public
void
run()
{
if
(isPlay)
{
if
(playTime > lastTime())
{
prostop();
}
else
{
textView_playtime.setText(progresstime(playTime));
seekBar.setProgress(playTime);
imageButton.postDelayed(action,
1000
);
playTime +=
1000
;
}
}
}
};
imageButton.postDelayed(action,
0
);
};
}.start();
}
private
void
prostop()
{
new
Thread()
{
@Override
public
void
run()
{
Runnable actionStop =
new
Runnable()
{
@Override
public
void
run()
{
imageButton.setImageResource(R.drawable.ic_pause);
isPlay =
false
;
playTime =
0
;
seekBar.setProgress(playTime);
}
};
imageButton.post(actionStop);
}
}.start();
}
private
int
lastTime()
{
String[] str = textView_lasttime.getText().toString().split(
":"
);
return
(Integer.parseInt(str[
1
]) + Integer.parseInt(str[
0
]) *
60
) *
1000
;
}
@Override
public
void
onProgressChanged(SeekBar seekBar,
int
progress,
boolean
fromUser)
{
playTime = progress;
}
@Override
public
void
onStartTrackingTouch(SeekBar seekBar)
{
}
@Override
public
void
onStopTrackingTouch(SeekBar seekBar)
{
}
private
String progresstime(
int
progress)
{
Date date =
new
Date(progress);
SimpleDateFormat format =
new
SimpleDateFormat(
"mm:ss"
);
return
format.format(date);
}
}