import android.app.Activity;
import android.graphics.PixelFormat;
import android.view.Gravity;
import android.view.View;
import android.view.WindowManager;
import android.widget.TextView;
import android.widget.Toast;
/**
* Created by leegu
*/
public class CompletedToast extends Toast{
View mRootView = null;
TextView mText = null;
WindowManager.LayoutParams mLayoutParams = null;
WindowManager mWindowManager = null;
public CompletedToast(Activity context){
super(context);
final WindowManager windowManager = context.getWindowManager();
mWindowManager = windowManager;
final TextView textView = new TextView(context);
mRootView = mText = textView;
textView.setPadding(20,20,20,20);
WindowManager.LayoutParams layoutParams = new WindowManager.LayoutParams(
WindowManager.LayoutParams.WRAP_CONTENT,
WindowManager.LayoutParams.WRAP_CONTENT,
0, 0,
PixelFormat.TRANSPARENT
);
mLayoutParams = layoutParams;
layoutParams.type = WindowManager.LayoutParams.TYPE_TOAST;
layoutParams.gravity = Gravity.CENTER;
}
@Override
public void show() {
mWindowManager.addView(mRootView,mLayoutParams);
mRootView.postDelayed(new Runnable() {
@Override
public void run() {
mWindowManager.removeViewImmediate(mRootView);
}
},getDuration());
}
@Override
public void setText(CharSequence cs) {
mText.setText(cs);
super.setText(cs);
}
public void setView(View rootView,TextView textView) {
mRootView = rootView;
mText = textView;
}
@Override
public void setDuration(int duration) {
if(duration == LENGTH_LONG){
duration = 6000;
}else if(duration == LENGTH_SHORT){
duration = 2000;
}
super.setDuration(duration);
}
@Override
public void setGravity(int gravity, int xOffset, int yOffset) {
mLayoutParams.gravity = gravity;
mLayoutParams.x = xOffset;
mLayoutParams.y = yOffset;
super.setGravity(gravity, xOffset, yOffset);
}
}