public int wIDthRatio(double ratioIn){ displayMetrics dm = new displayMetrics(); //gets screen propertIEs getwindowManager().getDefaultdisplay().getMetrics(dm); double screenWIDth = dm.wIDthPixels; //gets screen height double ratio = screenWIDth/100; //gets the ratio in terms of % int displayWIDth = (int)(ratio*ratioIn); //multiplIEs ratio desired % of screen return displayWIDth;}//method to get height or Ypos that is a one size fits allpublic int heightRatio(double ratioIn){ displayMetrics dm = new displayMetrics(); //gets screen propertIEs getwindowManager().getDefaultdisplay().getMetrics(dm); double screenHeight = dm.heightPixels; //gets screen height double ratio = screenHeight/100; //gets the ratio in terms of % int newHeight = (int)(ratio*ratioIn); //multiplIEs ratio by desired % of screen return newHeight;}//sets size of any vIEw (button,text,...) to a one size fits all screenspublic voID setSizeByRatio(VIEw object,int wIDth,int height){ LayoutParams params = object.getLayoutParams(); params.wIDth = wIDthRatio(wIDth); params.height = heightRatio(height);}
所以如果我说setSizeByRatio(button,10,25);它将按钮宽度设置为屏幕宽度的10%,高度设置为屏幕的25%.
是否有绝对布局不起作用的手机?此布局是否会导致任何其他问题?
解决方法 不推荐使用absoluteLayout的原因是因为您在linearLayout或GrIDLayout中有相同或更多的替代方法.您似乎正在尝试根据绝对位置和像素数计算位置,这种方法通常应该由于varoius屏幕尺寸和密度问题而避免.阅读@amIEkuser提供的链接,并关注理解最佳实践的方式.一些提示是为ldpi,mdpi和hdpi文件夹创建图像,使用单位表示dpi(密度无关像素)而不是原始像素,以及如何使用模拟器在多种屏幕尺寸和密度上测试应用程序.
编辑:
要设置视图的x和y位置,必须使用LayoutParams.请参阅this question,了解如何使用LayoutParams为VIEw设置topmargin和leftmargin.
总结以上是内存溢出为你收集整理的Android:AbsoluteLayout?全部内容,希望文章能够帮你解决Android:AbsoluteLayout?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)