屏幕适配
1 . 一些值得注意到事项
- 首先在安卓代码中,写死的数值都是px值,需要转化为dp值。
- 控件的长度使用dp,字体大小使用sp。
- 人眼看到的是大小和dp长度一样,dp一样,那么人眼看到的大小是一样的。
2 . 申请一个dp长度
(int)TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, num, getResources().getDisplayMetrics());
3 .关于高清屏图片缩小问题答:new BitmapDrawable(getResources()
,图片SD路径);BitmapFactory.decodeFile(loc)
;上两种方法读取图片读取的图片为图片实际像素点(px),展示时候需要放大【目标屏幕密度/标准密度】倍数,
不要使用new BitmapDrawable(Bitmap对象),这样会缩小【目标屏幕密度/标准密度】倍的图片,应该使用new BitmapDrawable(getResources(),Bitmap对象)
public Bitmap getBitMap(String loc) {
Bitmap bitmap = BitmapFactory.decodeFile(loc);
if (bitmap == null) {
return null;
}
int width = bitmap.getWidth();
int height = bitmap.getHeight();
Matrix matrix = new Matrix(); // 创建操作图片用的Matrix对象
float rate = getApplicationContext().getResources().getDisplayMetrics().density;
matrix.postScale(rate, rate); // 设置缩放比例
Bitmap newbmp = Bitmap.createBitmap(bitmap, 0, 0, width, height,
matrix, true);
return newbmp;
}
4.获取屏幕分辨率的大小
DisplayMetrics metrics = new DisplayMetrics();
Display display = activity.getwindowManager().getDefaultDisplay();
display.getMetrics(metrics);
这种方式获取屏幕宽高比较好
5.、如果需要在特定分辨率下适配,可以在res目录上新建layout-HxW.xml的文件夹。
网友评论