我正在创建按钮来改变音量,我想要那个 onClick
, 一个 seekbar
显示为一种 dialog
(但不是覆盖屏幕并且不允许与屏幕上的其他元素交互的那个)按钮下方,它应该在几秒钟后消失。我不想使用 alertDialog
android 提供的内容涵盖了整个 Activity 。我该怎么做?还有什么图书馆可以实现这一目标吗?
最佳答案
将 seekBar 放在 xml 布局中的按钮下方,alpha="0",然后尝试:
SeekBar mSeekbar;
int delay = 1000;
Button mButton;
Handler mHandler;
Runnable mRunnable = new Runnable() {
@Override
public void run() {
Animation anim = new AlphaAnimation(1, 0);
anim.setDuration(500);
mSeekbar.startAnimation(anim);
}
};
//inside onCreate (or wherever you decide)
mHandler = new Handler(); //(android.os)
mButton = (Button) findViewById(R.id.button1);
mSeekbar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
@Override
public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
}
@Override
public void onStartTrackingTouch(SeekBar seekBar) {
mHandler.removeCallbacks(mRunnable);
}
@Override
public void onStopTrackingTouch(SeekBar seekBar) {
mHandler.postDelayed(mRunnable, delay);
}
});
mButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(mSeekbar.getAlpha() == 0) {
Animation anim = new AlphaAnimation(0, 1);
anim.setDuration(500);
anim.setAnimationListener(new Animation.AnimationListener() {
@Override
public void onAnimationStart(Animation animation) {
}
@Override
public void onAnimationEnd(Animation animation) {
mHandler.postDelayed(mRunnable, delay);
}
@Override
public void onAnimationRepeat(Animation animation) {
}
});
mSeekbar.startAnimation(anim);
}
}
});
关于Android Seekbar 作为对话框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36301202/