Reputation: 3599
I am facing a problem when gets height/width of TextView.
My code :
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
TextView tv1 = (TextView)findViewById(R.id.textview1);
int h1 = tv1.getHeight();
TextView tv2 = (TextView)findViewById(R.id.textview2);
int h2 = tv2.getHeight();
}
h1 is height of textview1 h2 is height of textview2
These h1 and h2 are always equal to 0.
What is wrong here ?
Please advice.
Thanks.
Upvotes: 1
Views: 3305
Reputation: 1
tv1.getHeight() will return 0 (as well as tv2.getWidth()) if it's not drawed yet.
Solution would be to get the height after your view is layouted:
tv1.post(new Runnable(){
public void run(){
int height = tv1.getHeight();
}
});
tv2.post(new Runnable(){
public void run(){
int height = tv2.getHeight();
}
});
Upvotes: 0
Reputation: 36484
View.getWidth()/View.getHeight()
won't give you a meaningful answer until the view has been measured.
Read about how android draws views here.
See this thread to get an idea of when the measured dimensions will be available.
Upvotes: 8