Android应用开发-UI适配
来源:互联网 发布:火焰字制作软件 编辑:程序博客网 时间:2024/05/18 18:42
Android手机各种分辨率,各种像素密度,各种屏幕尺寸,如果要对UI较真,类的很。但还是要了解清楚怎么去做。
一:主流手机分辨率及尺寸
可以在eclipse中得android工程新建一个xml布局文件,点击Graphical Layout,上方的机型选择
QVGA ldpi 320*240 4:3
HVGA mdpi 480*320 4:3
WVGA hdpi 800*480 5:3
FWVGA hdpi 854*480 16:9
QHD hdpi 960*540 16:9
720p xhdpi 1280*720 16:9
1080p xxhdpi 1920*1080 16:9
Nexus 4 4.7 768*1280 xhdpi
Nexus 7 7.3 800*1280 tvdpi
。。。未完待续
二:sp,dp, dip, dpi, density定义,转换
dpi:像素密度,手机屏幕的清晰度,每英寸内的像素点数。就是手机厂商说的屏幕dpi。
density:就是dip和px之间的比率
metrics.density; //是一个比值,手机厂商可以修改
metrics.densityDpi; //dpi数据
metrics.density = metrics.densityDpi/android定义的每英寸像素密度
android默认的只有3个dpi,low、medium和high,对应 120、160、240,默认是160
比如一个机器,屏幕4存,分辨率480X800,4是对角线长度,那直接用勾股定理算对角线像素,
480*480 + 800*800 = a*a, a/4 算出来大概是 dpi = 233 像素/英寸。
dip: device independent pixels(设备独立像素), 和dp一个意思
px: pixels(像素)
sp: scaled pixels, 主要用于字体,可以跟随系统字体变换调整, 程序中使用自定义字体
Typeface fontFace = Typeface.createFromAsset(getAssets(),"fonts/STXINGKA.TTF");TextView text = (TextView) findViewById(R.id.idTvttt);text.setTypeface(fontFace);
转换:
public static int dip2px(Context context, float dipValue){ final float scale = context.getResources().getDisplayMetrics().density; return (int)(dipValue * scale + 0.5f); } public static int px2dip(Context context, float pxValue){ final float scale = context.getResources().getDisplayMetrics().density; return (int)(pxValue / scale + 0.5f); }
三:app如何做ui的适应
a:在drawable各个目录下放置不同的图片
b:有特殊需求的,新建layout目录,放置布局文件
c:新建values-hdpi .... 的目录,增加dimens.xml文件
针对布局的尺寸,字体的大小等设置不同的值。
虽然dp可以用于不同的屏幕,但有时候,有些布局在不同的分辨率和屏幕尺寸下还是要不同的dp值
- Android应用开发-UI适配
- Android 应用开发笔记 - UI开发详解
- android接触--应用层开发,UI
- Android UI开发中LayoutParams的应用
- Android开发之《Android应用开发揭秘》UI事件汇总
- Android开发之《Android应用开发揭秘》UI事件汇总
- Android开发之《Android应用开发揭秘》UI事件汇总
- Android开发之《Android应用开发揭秘》UI事件汇总
- Android应用开发学习笔记之开发自定义UI组件
- Android应用开发UI(自动提示)自动补全
- Android应用开发之UI组件(TextView;EditText)
- Android平台手机UI应用开发——软件管理器
- Android开发中UI设计高仿各个应用
- Android应用开发-小巫CSDN博客客户端UI篇
- Android开发UI之全屏沉浸式应用
- Android 应用开发性能优化之UI卡顿
- Android应用UI架构
- Android应用UI架构
- JS URL转码
- tiptop系统常用脚本工具
- 如何写出更好的Java代码
- JAVA card 应用开发(一) 创建第一个APPLET
- NIO介绍(一)
- Android应用开发-UI适配
- Android开发:碎片Fragment完全解析fragment_main.xml/activity_main.xml
- Mac 下初步搭建PHP开发环境
- 宏定义中使用do{}while(0)的好处
- 人类行为真的可预测么?
- vmware+windbg双击调试设置
- 代理模式
- win7下elnet命令为什么提示telnet不是内部或外部命令,也不是可运行的程序或批处理文件
- java正则表达式的基本用法