/** This is where we do the meat of creating our alert, which includes adding controls, etc. */ @Override public void draw(CGRect rect) { // if the control hasn't been setup yet if (activityIndicator == null) { // if we have a message if (message != null || !message.isEmpty()) { lblMessage = new UILabel(makeRect(20, 10, rect.size.width - 40, 33)); lblMessage.setBackgroundColor(UIColor.CLEAR); lblMessage.setTextColor(UIColor.LIGHT_TEXT_COLOR); lblMessage.setTextAlignment(UITextAlignment.CENTER); lblMessage.setText(message); addSubview(lblMessage); } // instantiate a new activity indicator activityIndicator = new UIActivityIndicatorView(UIActivityIndicatorViewStyle.WHITE); activityIndicator.setFrame( makeRect( (rect.size.width / 2) - (activityIndicator.getFrame().size.width / 2), 50, activityIndicator.getFrame().size.width, activityIndicator.getFrame().size.height)); addSubview(activityIndicator); activityIndicator.startAnimating(); } super.draw(rect); }
/** * We use this to resize our alert view. doing it at any other time has weird effects because of * the lifecycle */ @Override public void layoutSubviews() { super.layoutSubviews(); // resize the control setFrame(makeRect(getFrame().origin.x, getFrame().origin.y, getFrame().size.width, 120)); }