2013-11-02 3 views
0

layout에는 textview이고 height wrap_content입니다. text size은 10 sp입니다. 그래서 텍스트의 정확한 높이를 알고 싶습니다.특정 텍스트 크기의 텍스트보기에서 텍스트 높이를 확인하는 방법은 무엇입니까?

height을 알고 싶다면 이미지 범위를 사용하여 텍스트 뷰에서 bitmap 개의 이미지를 표시하고 싶습니다. 그리고 디코드 방법은 목표 너비와 높이가 필요합니다.

가능합니까? 감사.

+0

TextView.getLayout(). getHeight() – pskink

+0

이 어댑터의 getView 메소드에서 TextView.getLayout을 사용할 때 사용할 수 없습니다. 그 당시 값은 null이라고 생각합니다. – XWang

+0

무슨 뜻입니까? 을 (를) 사용할 수 있습니까? – pskink

답변

0

당신은 텍스트 뷰 객체에 의해 heigth를 얻을 수 있습니다 : 활동에서

TextView text = (TextView) findViewById(R.id.<ID_OF_TEXTVIEW_IN_LAYOUT); 
    int textViewHeigth = text.getHeigth(); 
+0

아니요, getHeight는 0을 리턴합니다. getMeasuredHeight도 0을 리턴합니다. 어댑터의 getView 기능에서 해당 메소드를 호출합니다. – XWang

0

onCreate() 재정의 레이아웃의 onGlobalLayout 방법. 이 메소드는 모든 뷰가 계산 된 후에 호출됩니다. 거기에 textView 높이를 가져 오십시오. 당신의 텍스트 뷰는 RelativeLayout의

RelativeLayout relativeLayout = (RelativeLayout) findViewById(R.id.relativeLayout); 
relativeLayout.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() { 
    @Override 
    public void onGlobalLayout() { 
     relativeLayout.getViewTreeObserver().removeGlobalOnLayoutListener(this); 
     TextView text = (TextView) findViewById(R.id.yourTextView); 
     int textViewHeigth = text.getHeigth(); 

     //Do what you want 
    } 
}); 
0

당신은 방법을 onWindowFocusChanged 오버라이드 (override) 할 수 있으며 다음은 뷰의 실제 높이와 너비를 얻을 수있는 것으로 가정
. 당신을 위해 여기에 몇 가지 포스트

@Override 
public void onWindowFocusChanged (boolean hasFocus) { 
     // the height will be set at this point 
     int textViewHeigth = text.getHeigth(); 
} 

: getHeight returns 0 for all Android UI objects 하고 다른 사용할 수있는 텍스트 뷰에 두 개의 API가 있습니다 How do you to retrieve dimensions of a view? Getheight() and Getwidth() always return zero

0

. 그것들은 getTextSize와 getLineHeight입니다. 모든 답변과 도움에 감사드립니다.

관련 문제