2012-12-14 4 views
2

LabelField 확장 내 자신의 클래스 내에서 paint() 메서드를 재정의하려고했지만 더 간단한 방법이 있으면 무시합니다.Blackberry LabelField의 텍스트에 어떻게 그림자를 추가 할 수 있습니까?

내 코드 :

enter image description here

편집 :

protected void paint(Graphics graphics) { 
    int previousColor = graphics.getColor(); 
    graphics.setColor(0xFFFFFF); 
    graphics.drawText(getText(), 2, -2); 
    graphics.setColor(previousColor); 
    super.paint(graphics); 
} 

는 내가 달성하고자하는이입니다 answer by Abhisek은 다음과 같은 결과를 생산하고, 사람이 관심 경우 :

enter image description here

답변

0

어둠 속에서 찌르지 만 Font.derive(style, height, units, aAntialiasMode, aEffects)을 사용하여 글꼴을 파생 시키려면 aEffects 매개 변수에 Font.DROP_SHADOW_RIGHT_EFFECT을 전달하고 해당 필드에 적용하십시오.

작동하는지 알려주세요. 나는 문서화되지 않았기 때문에 그것을 사용하지 않았다!

+0

의견을 보내 주셔서 감사합니다. 'Font.DROP_SHADOW_RIGHT_EFFECT'를 사용하면 실제로 텍스트 그림자가 생기지 만, 텍스트와 같은 색으로 그리고 오른쪽 아래 방향으로 만 생성됩니다. – Pablo

3

Abhishek's answer이 작동하지 않으면 paint 방법으로 직접 시도 할 수 있습니다. 쉽습니다. bg 색상으로 한 번만 페인트 한 다음 fg 색상으로 다시 페인트합니다 (몇 픽셀 아래로 이전 텍스트는 왼쪽으로). 이런 식으로 뭔가 :

protected void paint(Graphics graphics) { 
     graphics.setColor(0xFFFFFF); 
     graphics.drawText(getText(), 2, 0); 
     graphics.setColor(0x000000); 
     graphics.drawText(getText(), 0, 2); 
    } 

공지 사항 당신은 높이와 너비의 2 개 여분의 픽셀을 필요로하는지, 그래서 아마 당신은 getPreferredWidth, getPreferredHeight 및/또는 layout를 재정의해야합니다.

+0

+1, 괜찮습니다. – Abhishek

관련 문제