2014-02-26 3 views
2

알림 번호를 표시하는 Imagebutton을 만들고 있습니다.Android : 이미지의 특정 영역에 텍스트를 쓰는 방법

Icon Image

내 목표는 이미지의 특정 검은 색 원의 수를 (1,2 ..) 작성하는 것입니다 : 여기 내 샘플 이미지입니다. RelativeLayout과 FrameLayout을 시도했지만 결과를 얻는 데 신뢰할 수있는 방법이라고 생각하지 않습니다. 이유는 여백이기 때문에 여백은 장치 크기에 따라 다릅니다.

시작 하시겠습니까?

+2

검은 색 원과 연필 배경 이미지를 분리하십시오. FrameLayout을 사용하여 검정색 원을 연필 배경 위에 놓습니다. 또한 원을 TextView의 배경 드로잉으로 사용하십시오. – JoelFernandes

+0

@nitesh 이미지로 무엇을 의미하는지 모르시겠습니까? 거기에 내 질문에있다. – Signcodeindie

+0

@ Signcodeindie 이미지가 어디에 있습니까? :) – nitesh

답변

2

당신은 갈 :

<FrameLayout 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:background="@drawable/pencil"> 

     <TextView 
      android:id="@+id/circle" 
      android:layout_width="22dp" 
      android:layout_height="22dp" 
      android:background="@drawable/circle" 
      android:gravity="center" 
      android:text="2" 
      android:layout_gravity="bottom|right" 
      android:layout_marginRight="8dp" 
      android:layout_marginBottom="8dp" 
      android:textColor="#FFFFFF" 
      android:textSize="12sp" /> 

    </FrameLayout> 

이미지 : enter image description here enter image description here

출력 :

enter image description here

+0

고마워! 나는 여전히 의심 스럽다. 8dp의 마진 값을 사용하여 올바른 결과를 얻는다. 필자는 원하는 결과를 얻기 위해 10의 값을 사용했다. android : layout_marginRight = "10dp" android : layout_marginBottom = "10dp" – Signcodeindie

+0

원 이미지의 너비와 높이가 원인 일 수 있습니다. 그러나 다양한 화면에서 테스트하여 제대로 작동하는지 확인할 수 있습니다. – JoelFernandes

+0

안녕하세요 조엘, 정말 쉽게하고 문제를 해결해 주셔서 감사합니다. 답으로 표를받을 자격이 있습니다. 건배! – Signcodeindie

0

ImageView에서 확장 한 사용자 정의보기 클래스를 만들 수 있습니다. 이 같은 뭔가를 된 onDraw 메소드를 오버라이드 (override)해야 할 것이다 :

@Override 
protected void onDraw(Canvas canvas) { 
    super.onDraw(canvas); 
    // Calculate x and y positions and set up a Paint instance with correct color/size 
    canvas.drawText(String.valueOf(myNumber), x, y, myPaint); 
} 
0

이미지 내의 텍스트를 정렬 중력을 사용하여 이미지

<TextView android:id="@+id/img" android:layout_width="45sp" android:layout_height="45sp" android:background="@drawable/circle" android:gravity="center" android:text="r" /> 로 설정 배경이와 텍스트 뷰를 사용해보십시오. 여기

0
<TextView 
    android:id="@+id/textView1" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:gravity="bottom|right" 
    android:paddingRight="20dp" 
    android:paddingBottom="15dp" 
    android:textColor="@android:color/white" 
    android:background="@drawable/text" 
    android:text="1" /> 
0
try this code  
Bitmap bitmap = ... // Load your bitmap here 
Canvas canvas = new Canvas(bitmap); 
Paint paint = new Paint(); 
paint.setColor(Color.BLACK); 
paint.setTextSize(10); 
canvas.drawText("Some Text here", x, y, paint); 
+0

제 경우에 x, y를 찾는 방법은 무엇입니까? – Signcodeindie

+0

@Signcodeindie :이 좌표를 사용해보십시오 '11, 16 ' –