小编给大家分享一下Android编程如何处理窗口控件大小,形状,像素等UI元素工具类,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!
具体如下:
/** * 处理窗口控件大小,形状,像素等工具类 * * @author chen.lin * */ public class UITools { /** * 把像素转化为dp * * @param context * @param px * @return */ public static int px2dip(Context context, float px) { float density = context.getResources().getDisplayMetrics().density; return (int) (px * density + 0.5f); } /** * 设置窗体的宽度 * @param context */ public static void setWinWidth(Activity context) { DisplayMetrics metric = new DisplayMetrics(); context.getWindowManager().getDefaultDisplay().getMetrics(metric); LayoutParams p = context.getWindow().getAttributes(); p.width = (int) (metric.widthPixels * 0.8); context.getWindow().setAttributes(p); } /** * 设置弹出窗口中listview的高度 * * @param listView */ public static void setListViewHeight(ListView listView) { // 获取ListView对应的Adapter ListAdapter listAdapter = listView.getAdapter(); if (listAdapter == null) { return; } int totalHeight = 0; for (int i = 0, len = listAdapter.getCount(); i < len; i++) { // listAdapter.getCount()返回数据项的数目 View listItem = listAdapter.getView(i, null, listView); listItem.measure(0, 0); // 计算子项View 的宽高 totalHeight += listItem.getMeasuredHeight(); // 统计所有子项的总高度 } ViewGroup.LayoutParams params = listView.getLayoutParams(); params.height = totalHeight + (listView.getDividerHeight() * (listAdapter.getCount() - 1)); // listView.getDividerHeight()获取子项间分隔符占用的高度 // params.height最后得到整个ListView完整显示需要的高度 listView.setLayoutParams(params); } }
以上是“Android编程如何处理窗口控件大小,形状,像素等UI元素工具类”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注亿速云行业资讯频道!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。