android - How to square a custom view when layout_height and layout_width are set to have different magnitudes? -
as per understanding when user specifies views height/width in pixels/dp, view receives spec mode. spec mode means view must use size. suppose want make sure view remains square. how can achieved if user sets different values layout_height , layout_width.
override onmeasure custom view, determine smallest dimension is, , set both width , height minimum dimension.
something like:
@override protected void onmeasure(int widthmeasurespec, int heightmeasurespec) { super.onmeasure(widthmeasurespec, heightmeasurespec); int specwidth = measurespec.getsize(widthmeasurespec); int specheight = measurespec.getsize(heightmeasurespec); int lesserdimension = (specwidth > specheight)?specheight:specwidth; setmeasureddimension(lesserdimension, lesserdimension); }
Comments
Post a Comment