Android编程处理窗口控件大小,形状,像素等UI元素工具类
作者:LovooGod 发布时间:2022-04-06 04:47:53
标签:Android,窗口控件
本文实例讲述了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 调用发送短信的方 * 能:调用发送短信功能 1 、 权限 <uses-permission android:name=&
- 一、栈(Stack)1、什么是栈?栈其实就是一种数据结构 - 先进后出(先入栈的数据后出来,最先入栈的数据会被压入栈底)什么是java虚拟机
- c#中Math类的方法Math.Abs 已重载。 返回指定数字的绝对值。Math.Acos 返回余弦值为指定数字的角度。Math.Asin
- kaptcha是一个开源的验证码实现库1.添加依赖<dependency> <groupId>com.g
- 简评:Android Support Library 26 中终于实现了一个等待已久的功能: RecyclerView 的快速滚动 。And
- 一、水平分表当业务需求的数据量过大时,一个表格存储数据会非常之多,故时长采用水平分表的方式来减少每张表的数据量即是提升查询数据库时的效率。水
- 本文实例讲述了Java ThreadLocal类应用。分享给大家供大家参考,具体如下:一 点睛ThreadLocal,是Thread Loc
- 我们初学java的第一个程序是"hello world" public class HelloWorld {  
- SPI: 简单理解就是,你一个接口有多种实现,然后在代码运行时候,具体选用那个实现,这时候我们就可以通过一些特定的方式来告诉程序寻用那个实现
- 在 fluro 中,定义路由处理器 Handler 时可以指定该页面的默认转场形式,或者在使用 navigateTo 方法是可以设置页面跳转
- 一个类,有时候搞不清楚到底用成员变量还是属性。 如: 成员变量 public string
- Java中的set是无序的,但是是不可重复的HashSet底层是哈希表,通过调用hashcode和equals方法实现去重当我们HashSe
- 本文实例讲述了C#实现读取匿名对象属性值的方法。分享给大家供大家参考,具体如下:通过new出匿名对象,可以直接调用该匿名对象的属性名,获取属
- 本文实例讲述了C#端口转发用法。分享给大家供大家参考。具体分析如下:这里以链接3389的时候为例例子1:连接a机器的3389端口连不上,因为
- 最近在使用后端云Bmob对数据进行存储,目的是在不搭建服务器的前提下,能对Android应用的数据进行操作处理,其实这篇是比较久之前写的了,
- 最近研究了一下如何在Android上实现CoverFlow效果的控件,其实早在2010年,就有Neil Davies开发并开源出了这个控件,
- 1.Comparable前言,想要排序Student.有代码:import java.util.Arrays; class Stu
- 前言:今年是我的第二个 1024 了 ,和我一起大声说出来,技术宅改变世界!!!本节主要介绍的是:SpringBoot 整合阿里 Druid
- 1. 数据类型:在Java源代码中,每个变量都必须声明一种类型(type)。Java数据类型(type)可以分为两大类:基本类型(primi
- 连接操作redisSpring Boot中操作redis还是需要使用相关的启动器<dependency><groupId&