由于Toast显示时间只有LENGTH_LONG和LENGTH_SHORT。无法自定义
所以用Handler+Timer来实现。
Toast toast;
Timer timer1=new Timer(); //必须实例化,不然空指针异常
//<初始化不能删!删了空指针异常~>
toast = Toast.makeText(this, "", Toast.LENGTH_LONG);
toast.setGravity(Gravity.TOP, 0, 0);
final Handler handler=new Handler(Looper.getMainLooper());
handler.post(new Runnable() {
@Override
public void run() {
toast=Toast.makeText(XXX.this, info, Toast.LENGTH_LONG);
toast.setGravity(Gravity.TOP, 0, 50);
timer1 = new Timer();
timer1.schedule(new RemindTask(toast), 0,3000); }
});
3000ms的延迟好像是最好的效果了。不信的,自己试试咯
用完之后记得。timer1.cancel(),不然会一直显示的!!!!!!