Android中一个layout想适配各种屏幕尺寸那么需要按以下规则去写layout:
1 尽量使用wrap_content、match_parent、weight 来规定layout的大小。
2 要确保布局的灵活性并适应各种尺寸的屏幕,应使用 “wrap_content” 和 “match_parent” 控制某些视图组件的宽度和高度。
3 使用 “wrap_content”,系统就会将视图的宽度或高度设置成所需的最小尺寸以适应视图中的内容,而 “match_parent”(在低于 API 级别 8 的级别中称为“fill_parent”)则会展开组件以匹配其父视图的尺寸。
4 如果使用 “wrap_content” 和 “match_parent” 尺寸值而不是硬编码的尺寸,视图就会相应地仅使用自身所需的空间或展开以填满可用空间。此方法可让布局正确适应各种屏幕尺寸和屏幕方向。
5 如果某些地方必须要规定控件的大小,那么要使用dp 或者 dip单位。
6 字段必须使用 sp单位。
7 将不同的放到不同的drawable目录下,分辨率的匹配规则如下:
drawable-mdpi 320 480
drawable-hdpi 480800
drawable-xhdpi 720 1280
drawable-xxhdpi 1080 1920
drawable-xxxhdpi 1080+
是的,Android可以通过判断设备类型来为不同的设备使用不同的布局。一种常见的方法是使用资源限定符“size”,在布局文件夹中创建“layout-sw600dp”等不同尺寸对应的文件夹,然后将不同尺寸设备对应的布局文件放入不同的文件夹中。例如,“layout-sw600dp”文件夹适用于最小宽度(smallest width)不小于600dp的设备,可以在该文件夹中放置适用于平板电脑的布局文件。这样,在加载布局文件时,Android会自动选择最匹配当前设备屏幕尺寸的布局文件进行加载。除了“size”外,还可以使用其他资源限定符,如“density”(密度)、“orientation”(方向)等来实现不同设备使用不同的布局。
在html中获得android手机中浏览器的屏幕宽度的方法:
1、在网页的<head>中增加以上这句话,可以让网页的宽度自动适应手机屏幕的宽度:
[html] view plaincopy
<meta name="viewport" content="width=device-width, initial-scale=10, minimum-scale=05, maximum-scale=20, user-scalable=yes" />
<meta name="apple-mobile-web-app-capable" content="yes" />
<meta name="format-detection" content="telephone=no" />
第一行:
width=device-width :表示宽度是设备屏幕的宽度
initial-scale=10:表示初始的缩放比例
minimum-scale=05:表示最小的缩放比例
maximum-scale=20:表示最大的缩放比例
user-scalable=yes:表示用户是否可以调整缩放比例
第二行:
设定iphone端页面全屏。
第三行:
取消数字被识别为电话号码。
2、如果是想要一打开网页,则自动以原始比例显示,并且不允许用户修改的话,则是:
[html] view plaincopy
<meta name="viewport" content="width=device-width, initial-scale=10, minimum-scale=10, maximum-scale=10, user-scalable=no" />
3、这样可以把一些页头横幅等的的宽度都设置成style="width:100%",整个页面在设备上看起来就是全屏的了。
webviewaddjavascriptinterface可以调用android代码
android可以获得屏幕高度
DisplayMetrics dm = new DisplayMetrics();
getWindowManager()getDefaultDisplay()getMetrics(dm);
int height = dmheightPixels//这个就是屏幕高度了。
webViewaddJavascriptInterface(new WebAppInterface(this), "Android");
这个就创立了一个接口名,叫“Android”,运行在WebView中的JS代码可以通过这个名字调用WebAppInterface类中的showToast()方法:
<input type="button" value="Say hello" onClick="showAndroidToast('Hello Android!')" />
<script type="text/javascript">
function showAndroidToast(toast)
{
AndroidshowToast(toast);
}
</script>
想要Android应用适应不同尺寸的屏幕,思路如下:
一:不同的layout
Android手机屏幕大小不一,有480x320, 640x360, 800x480,让app适应不同屏幕,需要在res目录下创建不同的layout文件夹,比如layout-640x360,layout-800x480,所有的layout文件在编译之后都会写入Rjava里,而系统会根据屏幕的大小自己选择合适的layout进行使用。
二:hdpi、mdpi、ldpi
在之前的版本中,只有一个drawable,而21版本中有drawable-mdpi、drawable-ldpi、drawable-hdpi三个,这三个主要是为了支持多分辨率。
drawable- hdpi、drawable- mdpi、drawable-ldpi的区别:
(1)drawable-hdpi里面存放高分辨率的,如WVGA (480x800),FWVGA (480x854)
(2)drawable-mdpi里面存放中等分辨率的,如HVGA (320x480)
(3)drawable-ldpi里面存放低分辨率的,如QVGA (240x320)
系统会根据机器的分辨率来分别到这几个文件夹里面去找对应的。
更正:应该是对应不同density 的
在开发程序时为了兼容不同平台不同屏幕,建议各自文件夹根据需求均存放不同版本。
屏幕方向:
横屏竖屏自动切换:
可以在res目录下建立layout-port-800x600和layout-land两个目录,里面分别放置竖屏和横屏两种布局文件,这样在手机屏幕方向变化的时候系统会自动调用相应的布局文件,避免一种布局文件无法满足两种屏幕显示的问题。
不同分辨率横屏竖屏自动切换:
以800x600为例 :
可以在res目录下建立layout-port-800x600和layout-land-800x600两个目录
不切换:
以下步骤是网上流传的,不过我自己之前是通过图形化界面实现这个配置,算是殊途同归,有空我会把贴上来。
还要说明一点:每个activity都有这个属性screenOrientation,每个activity都需要设置,可以设置为竖屏(portrait),也可以设置为无重力感应(nosensor)。
要让程序界面保持一个方向,不随手机方向转动而变化的处理办法:
在AndroidManifestxml里面配置一下就可以了。加入这一行android:screenOrientation="landscape"。
例如(landscape是横向,portrait是纵向):
Java代码:
<xml version="10" encoding="utf-8">
<manifest xmlns:android=">
关键字: 屏幕适配 px dp dpi sp large限定符 9png
前言: 这篇文章依然是我在 [慕课网 ][h]学习 凯子哥 的同名视频 Android-屏幕适配全攻略 ,所记录下来的笔记---凯子哥讲得真的超详细。
[h]: >
以上就是关于怎么计算 android 5寸屏幕 dp全部的内容,包括:怎么计算 android 5寸屏幕 dp、android判断pad使用不同的布局、如何在html中获得android手机中浏览器的屏幕的宽度等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)