2012-01-19 1 views
0

Я получаю это ... Я хочу следующее изображение enter image description here Я новичок в Blackberry.Плотная рамка для закругленной кнопки в ежевике

Я хочу дать толстую границу округленному полю кнопки в моем приложении.

Ниже приведен мой код.

Я создал класс CustomBasicEditField.

protected void paint(Graphics graphics) 
{ 

    int x = (this.getWidth() - getFont().getAdvance(text)) >> 1; 
    int y = (this.getHeight() - getFont().getHeight()) >> 1; 

    graphics.setColor(backgroundColour); 
    graphics.fillRoundRect(0, 0, fieldWidth, fieldHeight, 40, 40); 
    graphics.setColor(border_color); 
    graphics.setStrokeWidth(5); 
    graphics.drawRoundRect(0, 0, fieldWidth, fieldHeight, 40, 40); 
    graphics.setColor(0x2bb1ff); 
    graphics.setFont(myFont); 
    graphics.drawText(text, x, y); 

    super.paint(graphics); 
} 

Если я drawRoundRect (0,0, fieldWidth, fieldHeight, 0, 0), то он печатает квадрат с толщиной границы.

Но я не хочу квадрата. Когда я держу вышеуказанный код, он создает округленное поле редактирования, но тонкую границу.

Заранее спасибо.

ответ

2

Попробуйте этот код:

public class LoadingScreen extends MainScreen 
{  
ButtonField save; 
public LoadingScreen() 
{ 
    setTitle("Loading Screen"); 
    createGUI(); 
} 

private void createGUI() 
{ 
    VerticalFieldManager vr=new VerticalFieldManager(); 
    Border border=BorderFactory.createRoundedBorder(new XYEdges(5,5,5,5),Color.RED,Border.STYLE_FILLED); 
    // give XYEdges(10,10,10,10) and see the difference;   
    save=new ButtonField("Save");  
    save.setBorder(border);  
    vr.add(save); 
    vr.setPadding(5, 5, 5, 5); 
    add(vr); 
} 

public boolean onMenu(int instance) 
{ 
    return true; 
} 
} 

Я получил так:

Rounded Bordered Button

+0

Я получаю как это ... но проблема ... мне нужно что-нибудь, как на картинке я закачанный ... –

+0

я могу достичь его ... но потом .. м не собирающий что толщина –

+0

Я стараюсь до сих пор, но ......... и пытаюсь – alishaik786

1
Bitmap borderBitmap = //a ![your image] 
    VerticalFieldManager vfm_email = new VerticalFieldManager(); 
    vfm_email.setBorder(BorderFactory.createBitmapBorder(new XYEdges(5, 5, 
      5, 5), borderBitmap)); 
    vfm_email.setMargin(m, 30, 0, 30); 
    email = new EmailAddressEditField(" ", "", 50, Field.FOCUSABLE); 
    vfm_email.add(email); 
    vfm_.add(vfm_email); 
0

Попробуйте, это работает отлично.

Border myBorder = BorderFactory.createBitmapBorder(new XYEdges(10, 10, 10, 10), 
        Bitmap.getBitmapResource("border.png")); 

     BasicEditField edt_searchText = new BasicEditField(TextField.NO_NEWLINE) 
       { 
        protected void paint(Graphics g) 
        { 
         if (getTextLength() == 0) 
         { 
          g.setColor(Color.LIGHTGRAY); 
          g.drawText("Search weeds", 0, 0); 
         } 

         g.setColor(Color.BLACK); 
         super.paint(g); 
        } 
       }; 
       edt_searchText.setBorder(myBorder);