android 培训文档 总结的 屏幕适配
2014-12-02 09:21
246 查看
三,屏幕适配
① 常见的屏幕
Hdipi:480*800
Ldpi:240*320
Xhdpi:1280*720
Mdpi:320*480
② 屏幕的基本概念
分辨率:长和宽总的像素点的总和。(有多少个点)
屏幕的大小:买手机会问买多大的手机,英寸,手机的对角线。
随便建立一个项目,在eclipse 中有好几个drawabledpi.
Dip: 翻译成中文,密度。有质量就有密度。屏幕适配和分辨率没有任何关系的。屏幕的密度和适配息息相关。每一个英寸所展示的像素点。
屏幕尺寸是指显示器屏幕对角线的尺寸,一般用英寸来表示。
可测量显示器对角线长度转换为英寸即可!1英寸=2.54厘米
③如何让textview 占用屏幕的一半:
Ⅰ: 权重。 Layout_weight;
Ⅱ:通过代码比例适配。
Ⅲ:dp 不行。
1, Ⅳ:新建任何项目的时候,values 下的dimens 必须把大的数字写在前面eq:layout-1280x720 中间不是*,而是小写的x.)
④适配
2, 正常情况下,都可以使用sp. (如果你的控件是具体的数值,或者是填充父窗体)
sp: scaled pixels(放大像素). 主要用于字体显示best for textsize。
由此,根据 google 的建议,TextView 的字号最好使用 sp 做单位。
3, 假设你是包裹内容的话,就不能使用sp ,就必须使用dip.
4,
5, 每个drawable 下都有相同文件名的图片。那么手机会加载那个图片呢?
图片适配(首先会往上面去找,如果整个上面都没有的话,就会往下面去找图片dimens,layout,图片,进行适配。)
6, 总有一些手机适配不了。通过多套布局进行适配(注意细节:如果是进行多套layout 布局适配的话,必须把大的数字写在前面eq:layout-1280x720 中间不是* ,而是小写的x.)
7, 通过代码进行屏幕适配。Adapter5 apps 得到屏幕宽高,给一个比例。0.5 是保证精度。误差不可比避免,减少误差。
8, 比例(权重)
⑤屏幕的密度
屏幕的密度
ldpi Resources for low-density(ldpi) screens (~120dpi). 每个英寸多少个点
mdpi Resources formedium-density (mdpi) screens (~160dpi). (This is the baseline density.)
hdpi Resources for high-density(hdpi) screens (~240dpi).
xhdpi Resources for extrahigh-density (xhdpi) screens (~320dpi).
屏幕的密度和icon 的大小:开发一套图片,只放到drawable 中,就会根据比例进行缩放。为什么用一套图就能进行适配。
缩放因子
3:4:6:8 0.75:1:1.5:2
icon的大小 通过比例进行缩放。根据比例算出来的。
36x36 for low-density
48x48 for medium-density
72x72 for high-density
96x96 for extra high-density
这些东西不懂也不影响开发。
为什么把480*800 的图片放到hdpi?
得到的密度结构是233 。最接近240.
① 根据缩放比例计算宽高。
Hdipi:480*800
Ldpi:240*320
Xhdpi:1280*720
Mdpi:320*480
Ⅰ,现在是1280*720 那么宽的一半应该是多少dp?
720/2=360;360/2=180; 他是xhdpi.
Ⅱ:现在是480*800,宽度的一半?
480/2=240; 240/1.5=160;
adapter 5 代码适配
appcan 源码屏幕视频
① 常见的屏幕
Hdipi:480*800
Ldpi:240*320
Xhdpi:1280*720
Mdpi:320*480
② 屏幕的基本概念
分辨率:长和宽总的像素点的总和。(有多少个点)
屏幕的大小:买手机会问买多大的手机,英寸,手机的对角线。
随便建立一个项目,在eclipse 中有好几个drawabledpi.
Dip: 翻译成中文,密度。有质量就有密度。屏幕适配和分辨率没有任何关系的。屏幕的密度和适配息息相关。每一个英寸所展示的像素点。
屏幕尺寸是指显示器屏幕对角线的尺寸,一般用英寸来表示。
可测量显示器对角线长度转换为英寸即可!1英寸=2.54厘米
③如何让textview 占用屏幕的一半:
Ⅰ: 权重。 Layout_weight;
Ⅱ:通过代码比例适配。
Ⅲ:dp 不行。
1, Ⅳ:新建任何项目的时候,values 下的dimens 必须把大的数字写在前面eq:layout-1280x720 中间不是*,而是小写的x.)
④适配
2, 正常情况下,都可以使用sp. (如果你的控件是具体的数值,或者是填充父窗体)
sp: scaled pixels(放大像素). 主要用于字体显示best for textsize。
由此,根据 google 的建议,TextView 的字号最好使用 sp 做单位。
3, 假设你是包裹内容的话,就不能使用sp ,就必须使用dip.
4,
5, 每个drawable 下都有相同文件名的图片。那么手机会加载那个图片呢?
图片适配(首先会往上面去找,如果整个上面都没有的话,就会往下面去找图片dimens,layout,图片,进行适配。)
6, 总有一些手机适配不了。通过多套布局进行适配(注意细节:如果是进行多套layout 布局适配的话,必须把大的数字写在前面eq:layout-1280x720 中间不是* ,而是小写的x.)
7, 通过代码进行屏幕适配。Adapter5 apps 得到屏幕宽高,给一个比例。0.5 是保证精度。误差不可比避免,减少误差。
8, 比例(权重)
⑤屏幕的密度
屏幕的密度
ldpi Resources for low-density(ldpi) screens (~120dpi). 每个英寸多少个点
mdpi Resources formedium-density (mdpi) screens (~160dpi). (This is the baseline density.)
hdpi Resources for high-density(hdpi) screens (~240dpi).
xhdpi Resources for extrahigh-density (xhdpi) screens (~320dpi).
屏幕的密度和icon 的大小:开发一套图片,只放到drawable 中,就会根据比例进行缩放。为什么用一套图就能进行适配。
缩放因子
3:4:6:8 0.75:1:1.5:2
icon的大小 通过比例进行缩放。根据比例算出来的。
36x36 for low-density
48x48 for medium-density
72x72 for high-density
96x96 for extra high-density
这些东西不懂也不影响开发。
为什么把480*800 的图片放到hdpi?
得到的密度结构是233 。最接近240.
① 根据缩放比例计算宽高。
Hdipi:480*800
Ldpi:240*320
Xhdpi:1280*720
Mdpi:320*480
Ⅰ,现在是1280*720 那么宽的一半应该是多少dp?
720/2=360;360/2=180; 他是xhdpi.
Ⅱ:现在是480*800,宽度的一半?
480/2=240; 240/1.5=160;
adapter 5 代码适配
package com.example.adapter5; import android.app.Activity; import android.os.Bundle; import android.util.DisplayMetrics; import android.view.Menu; import android.widget.Button; import android.widget.LinearLayout; import android.widget.LinearLayout.LayoutParams; public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); DisplayMetrics displayMetrics = new DisplayMetrics(); getWindowManager().getDefaultDisplay().getMetrics(displayMetrics); Constant.displayWidth = displayMetrics.widthPixels; Constant.displayHeight = displayMetrics.heightPixels; Button bt1 = (Button) findViewById(R.id.btn1); Button bt2 = (Button) findViewById(R.id.btn2); Button bt3 = (Button) findViewById(R.id.btn3); Button bt4 = (Button) findViewById(R.id.btn4); /** * 400 399.2+0.5= 399.7 399.7+0.5=400.2 */ // 第一个按钮,宽度100%,高度10% LinearLayout.LayoutParams params = new LinearLayout.LayoutParams( LayoutParams.MATCH_PARENT, (int) (Constant.displayHeight * 0.1f + 0.5f)); bt1.setLayoutParams(params); // 第二个按钮,宽度100%,高度30% LinearLayout.LayoutParams params2 = new LinearLayout.LayoutParams( LayoutParams.MATCH_PARENT, (int) (Constant.displayHeight * 0.3f + 0.5f)); bt2.setLayoutParams(params2); // 第三个按钮,宽度50%,高度20% LinearLayout.LayoutParams params3 = new LinearLayout.LayoutParams( (int) (Constant.displayWidth * 0.5f + 0.5f), (int) (Constant.displayHeight * 0.2f + 0.5f)); bt3.setLayoutParams(params3); // 第四个按钮,宽度70%,高度填满剩下的空间 LinearLayout.LayoutParams params4 = new LinearLayout.LayoutParams( (int) (Constant.displayWidth * 0.7f + 0.5f), LayoutParams.MATCH_PARENT); bt4.setLayoutParams(params4); } }
appcan 源码屏幕视频
相关文章推荐
- Android-屏幕适配需要注意的地方总结
- Android屏幕适配总结
- Android 屏幕适配原则总结
- Android屏幕适配方案---基于官网文档结合个人理解
- Android 屏幕适配相关的学习总结
- Android屏幕适配总结
- Android Multiple Screens Android 屏幕适配的一些总结
- Android屏幕适配总结
- android下在屏幕适配小总结
- Android屏幕适配总结
- Android-屏幕适配需要注意的地方总结
- Android Web App官方文档翻译第二章:屏幕适配
- 【android官方文档】android 屏幕适配 支持不同的屏幕
- Android屏幕适配总结
- Android Web App官方文档翻译第二章:屏幕适配
- Android Web App官方文档翻译第二章:屏幕适配
- android屏幕适配全面总结
- android屏幕适配全面总结
- android屏幕适配官方总结
- Android的屏幕适配总结