Android万能分辨率适应法
(1)获取屏幕的尺寸
- WindowManager windowManager = (WindowManager) getSystemService(Context.WINDOW_SERVICE);
- Display d = windowManager.getDefaultDisplay();
- mWidth = d.getWidth();
- mHeight = d.getHeight();
- DisplayMetrics dm = getResources().getDisplayMetrics();
- mScreenDensity = dm.density;
(2)美工设计图的尺寸
- uiWidth,uiHeight
(3)获取缩放比例
- float scaleWidth = mWidth / uiWidth;
- float scaleHeight = mHeight/ uiHeight;
(4)全部布局的尺寸用代码实现
- public static int getWidthSize(int size){
- return (int) (size * scaleWidth);
- }
- public static int getHightSize(int size){
- return (int) (size * scaleHeight);
- }
- public static float getTextSize(int pxSize){
- return (pxSize*scaleHeight) / mScreenDensity;
- }
- public static void setViewSize(int width, int height, View v){
- int paramWidth = getWidthSize(width);
- int paramHeight = getHightSize(height);
- ViewGroup.MarginLayoutParams params
- = (ViewGroup.MarginLayoutParams) v.getLayoutParams();
- if (width != INVALID){
- params.width = paramWidth;
- }
- if (height != INVALID){
- params.height = paramHeight;
- }
- v.setLayoutParams(params);
- }
- public static void setViewPadding(int left, int top, int right, int bottom,
- View v){
- left = getWidthSize(left);
- top = getHightSize(top);
- right = getWidthSize(right);
- bottom = getWidthSize(bottom);
- v.setPadding(left, top, right, bottom);
- }
- public static void setViewMargin(int left, int top, int right, int bottom,
- View v){
- int paramLeft = getWidthSize(left);
- int paramTop = getHightSize(top);
- int paramRight = getWidthSize(right);
- int paramBottom = getHightSize(bottom);
- ViewGroup.MarginLayoutParams params = (ViewGroup.MarginLayoutParams)
- v.getLayoutParams();
- if (left != INVALID){
- params.leftMargin = paramLeft;
- }
- if (right != INVALID){
- params.rightMargin = paramRight;
- }
- if (top != INVALID){
- params.topMargin = paramTop;
- }
- if (bottom != INVALID){
- params.bottomMargin = paramBottom;
- }
- v.setLayoutParams(params);
- }
Android万能分辨率适应法的更多相关文章
- 关于android的分辨率
关于Android的分辨率支持,为大家翻译官方文档 看世界杯的空闲时间,翻译一下官方文档.分辨率问题是大家都很关心的(720×480会不会悲剧),而关于这个问题,android官方的文档无疑最有说服力 ...
- Android进阶笔记10:Android 万能适配器
1. Android 万能适配器 项目中Listview GridView几乎是必用的组件,Android也提供一套机制,为这些控件绑定数据,那就是Adapter.用起来虽然还不错,但每次都 ...
- 使用Vitamio打造自己的Android万能播放器(6)——在线播放(播放列表)
前言 新版本的VPlayer由设计转入开发阶段,预计开发周期为一个月,这也意味着新版本的Vitamio将随之发布,开发者们可以和本系列文章一样,先开发其他功能.本章内容为"在线视频播放列表& ...
- 使用Vitamio打造自己的Android万能播放器(5)——在线播放(播放优酷视频)
前言 为了保证每周一篇的进度,又由于Vitamio新版本没有发布, 决定推迟本地播放的一些功能(截图.视频时间.尺寸等),跳过直接写在线播放部分的章节.从Vitamio的介绍可以看得出,其支持http ...
- 使用Vitamio打造自己的Android万能播放器(4)——本地播放(快捷搜索、数据存储)
前言 关键字:Vitamio.VPlayer.Android播放器.Android影音.Android开源播放器 本章节把Android万能播放器本地播放的主要功能(缓存播放列表和A-Z快速查询功能) ...
- 使用Vitamio打造自己的Android万能播放器(3)——本地播放(主界面、播放列表)
前言 打造一款完整可用的Android播放器有许多功能和细节需要完成,也涉及到各种丰富的知识和内容,本章将结合Fragment.ViewPager来搭建播放器的主界面,并实现本地播放基本功能.系列文章 ...
- 使用Vitamio打造自己的Android万能播放器(2)—— 手势控制亮度、音量、缩放
前言 本章继续完善播放相关播放器的核心功能,为后续扩展打好基础. 声明 欢迎转载,但请保留文章原始出处:) 博客园:http://www.cnblogs.com 农民伯伯: http://ove ...
- 使用Vitamio打造自己的Android万能播放器(1)——准备
前言 虽然Android已经内置了VideoView组件和MediaPlayer类来支持开发视频播放器,但支持格式.性能等各方面都十分有限,这里与大家一起利用免费的Vitamio来打造属于自己的And ...
- (13)[Xamarin.Android] 不同分辨率下的图片使用概论
原文 [Xamarin.Android] 不同分辨率下的图片使用概论 设计Android App的时候,其尺寸众多也是一个挑战之一.要针对不同尺寸设计Android App时,就要先来了一下dpi(d ...
随机推荐
- HDU4612(Warm up)2013多校2-图的边双连通问题(Tarjan算法+树形DP)
/** 题目大意: 给你一个无向连通图,问加上一条边后得到的图的最少的割边数; 算法思想: 图的边双连通Tarjan算法+树形DP; 即通过Tarjan算法对边双连通缩图,构成一棵树,然后用树形DP求 ...
- hdu 3395
KM裸题 每个鱼都认为自己是雄性,而且会攻击它认为是雌性的鱼,每个鱼只能被攻击一次,被攻击后会产卵(个数是给的两条鱼的值的异或运算) #include<string.h> #include ...
- 手机软件记事本(SuperNotepad)的使用教程
软件简介: 手机应用记事本(SuperNotepad)类似电脑应用notepad, 可用于文本阅读和编辑新建电子书(本应用限文本txt文件),是阅读小说和便签记录的好帮手. 电子书阅读器及便签的手机应 ...
- JavaScript的68个技巧一
1. 严格模式 在自己的项目中 你可以坚持只使用" 严格模式 " 或只使用" 非严格模式 "的策略.但如果你要编写健壮的代码应对各种各样的代码连接 你有两个可选 ...
- 【转载】Python编程中常用的12种基础知识总结
Python编程中常用的12种基础知识总结:正则表达式替换,遍历目录方法,列表按列排序.去重,字典排序,字典.列表.字符串互转,时间对象操作,命令行参数解析(getopt),print 格式化输出,进 ...
- (转)C# DateTime格式化大全
//c datetime 格式化 DateTime dt = DateTime.Now; Label1.Text = dt.ToString();//2005-11-5 13:21:25 Label2 ...
- cell高度自动适应文章内容
效果: 描述:表视图中生成多个不同的cell,cell的高度跟文字内容的多少有关 要求:需要自己在网上下载一个plis文件,然后修改两个标题 一 : 创建工程文件UIAutomaticCellHeig ...
- java下tcp的socket连接
serverDemo package cn.stat.p4.ipdemo; import java.io.IOException; import java.io.InputStream; import ...
- 关于javascript中setTimeout()和clearTimeout()的疑惑。
由于在w3school中学习javascript时,当学到setTimeout()和clearTimeout()方法时.根据它所提供的例子(下面的代码转自w3cschool)—计数程序,发现当你不停的 ...
- JS nodeType返回类型(复制的
http://blog.csdn.net/qyf_5445/article/details/9232907 将HTML DOM中几个容易常用的属性做下记录: nodeName.nodeValue 以及 ...