Android编程处理窗口控件大小,形状,像素等UI元素工具类

作者:LovooGod 时间:2022-04-06 04:47:53 

本文实例讲述了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程序设计有所帮助。

来源:http://blog.csdn.net/lovoo/article/details/51209480

标签:Android,窗口控件
0
投稿

猜你喜欢

  • Spring Boot 文件上传与下载的示例代码

    2021-08-30 02:04:53
  • SpringCloud中分析讲解Feign组件添加请求头有哪些坑梳理

    2023-05-01 19:30:11
  • Mybatis 动态SQL的几种实现方法

    2023-11-10 12:15:15
  • struts2单个文件上传的两种实现方式

    2023-04-23 05:33:30
  • 快速了解c# 常量

    2023-06-26 23:35:32
  • java清除u盘内存卡里的垃圾文件示例

    2023-05-12 06:41:38
  • 引入mybatis-plus报 Invalid bound statement错误问题的解决方法

    2021-06-01 14:28:00
  • android全局监控click事件的四种方式(小结)

    2023-05-02 07:33:31
  • Java 反射类型Type的用法说明

    2023-01-23 04:15:44
  • unity实现简单贪吃蛇游戏

    2023-05-25 23:59:53
  • Java数据结构之线段树中的懒操作详解

    2021-08-20 00:21:52
  • 从try-with-resources到ThreadLocal,优化你的代码编写方式

    2023-11-11 03:19:52
  • java 中clone()的使用方法

    2023-03-31 12:11:37
  • 详解C# 线程的挂起与唤醒

    2023-03-12 12:40:02
  • SpringBoot集成elasticsearch使用图文详解

    2021-06-06 16:12:47
  • Java实现调用外部程序的示例代码

    2023-11-10 06:43:12
  • SpringBoot框架集成ElasticSearch实现过程示例详解

    2023-02-02 08:44:05
  • 带你了解Java数据结构和算法之链表

    2023-01-04 21:23:58
  • linux下idea、pycharm等输入中文拼音时满3个字母后无法继续拼音输入的问题

    2022-03-03 20:49:19
  • Java Shutdown Hook场景使用及源码分析

    2023-05-19 06:01:30
  • asp之家 软件编程 m.aspxhome.com