In OnCreate, a function such as getheight cannot get the size of the control, resulting in a 0
Other methods should be used
Resources res = getresources ();
Final ImageView view= (ImageView) Findviewbyid (r.id.iv_about);
Final drawable drawable=res.getdrawable (r.drawable.ic_about);
Displaymetrics dm = new Displaymetrics ();
Getwindowmanager (). Getdefaultdisplay (). Getmetrics (DM);
Final int screen_height = dm.heightpixels;//height
Viewtreeobserver vto = View.getviewtreeobserver ();
Vto.addonpredrawlistener (New Viewtreeobserver.onpredrawlistener () {
public Boolean Onpredraw () {
int height = (int) ((float) view.getmeasuredwidth ()/drawable.getminimumwidth () * drawable.getminimumheight ());
int width = view.getmeasuredwidth ();
linearlayout.layoutparams linearparams = (linearlayout.layoutparams) view.getlayoutparams (); Take control TextView the current layout parameter
Linearparams.height = height;
Linearparams.width = View.getmeasuredwidth ();
LINEARPARAMS.TOPMARGIN=SCREEN_HEIGHT/10;
View.setlayoutparams (Linearparams);
View.setimageresource (r.drawable.ic_about);