2016-10-01 3 views
0

setCompoundDrawablesWithIntrinsicBounds를 사용하여 drawable을 추가하려는 TextView가 있는데, 그렇게하면 텍스트가 이동하고 그 근처에있는 TextView에 정렬되지 않습니다. drawable.setCompoundDrawablesWithIntrinsicBounds를 사용하면 TextView 내부의 텍스트가 이동합니다.

TextView tv1 = new TextView(); 
TextView tv2 = new TextView(); 

Drawable icon = getContext().getResources().getDrawable(
         R.drawable.arrow_right_down,null); 
       tv1.setPadding(ARROW_PADDING,0,0,0); 
       tv1.setCompoundDrawablesWithIntrinsicBounds(
         icon, null, null, null); 

tv1.setText("A"); 
tv2.setText("A"); 

문제 - A가 정렬되지 않았습니다. 텍스트가 정렬되어있는 드로어 블을 제거하면 물론입니다. TextViews는 다른 근처에 있으므로보기가 쉽습니다.

감사합니다.

+0

무슨 일이 일어날 것으로 예상 했습니까? 즉, 무슨 일이 일어 났는지 알았으니 이제 성취하려는 것은 무엇입니까? –

+0

@MikeM. 난 그저 텍스트가 정렬되도록하고 싶습니다. – Mojo

+0

음, 같은 크기의 투명한 'Drawable'을 다른 하나에 추가 할 수 있습니다. 또는'icon' 너비를 가져 와서 다른 하나의 왼쪽 패딩에 추가 할 수 있습니다. 또는 다른 'TextView' 그 너비에 의해 왼쪽 - 오프셋 수 있습니다. 내가 아마 두 번째 것과 함께 갈 것입니다. –

답변

0

문제는 패딩이 있고 이미지가있는 것입니다. 계산 한 다음 패딩으로 빼면 효과가 있습니다.

단지 추가 :

int padding = IMG_SIZE+ARROW_PADDING; 
this.setCompoundDrawablePadding(-padding); 
관련 문제