在Android开发中比较头疼的是Android的分辨率问题,那么这里给大家介绍个万能办法,这个办法的优点是可以实现万能适应,给开发和美工设计提供了依据,但是对开发来说代码量也不少,具体办法你听我来说:
(1)获取屏幕的尺寸
|
1 |
WindowManager windowManager = (WindowManager) |
|
2 |
|
|
3 |
Display d = windowManager.getDefaultDisplay(); |
|
4 |
mWidth = d.getWidth(); |
|
5 |
mHeight = d.getHeight(); |
|
6 |
DisplayMetrics dm = getResources().getDisplayMetrics(); |
|
7 |
mScreenDensity = dm.density; |
(2)美工设计图的尺寸
|
1 |
uiWidth,uiHeight |
(3)获取缩放比例
|
1 |
float scaleWidth = mWidth / uiWidth; |
|
2 |
float scaleHeight = mHeight/ uiHeight; |
(4)所有布局的尺寸用代码实现:
|
01 |
public static int getWidthSize(int size){ |
|
02 |
|
|
03 |
} |
|
04 |
|
|
05 |
public static int getHightSize(int size){ |
|
06 |
|
|
07 |
} |
|
08 |
|
|
09 |
public static float getTextSize(int pxSize){ |
|
10 |
|
|
11 |
} |
|
12 |
|
|
13 |
public static void setViewSize(int width, int height, View v){ |
|
14 |
|
|
15 |
|
|
16 |
|
|
17 |
|
|
18 |
|
|
19 |
|
|
20 |
|
|
21 |
|
|
22 |
|
|
23 |
|
|
24 |
|
|
25 |
} |
|
26 |
|
|
27 |
public static void setViewPadding(int left, int top, int right, int bottom, |
|
28 |
|
|
29 |
|
|
30 |
|
|
31 |
|
|
32 |
|
|
33 |
|
|
34 |
} |
|
35 |
|
|
36 |
|
|
37 |
public static void setViewMargin(int left, int top, int right, int bottom, |
|
38 |
|
|
39 |
|
|
40 |
|
|
41 |
|
|
42 |
|
|
43 |
|
|
44 |
|
|
45 |
|
|
46 |
|
|
47 |
|
|
48 |
|
|
49 |
|
|
50 |
|
|
51 |
|
|
52 |
|
|
53 |
|
|
54 |
|
|
55 |
|
|
56 |
|
|
57 |
|
|
58 |
} |
|
1 |
setViewSize(100, 100, mView); |
|
2 |
setViewMargin(20, 0, 0, 20, mView); |
|
3 |
setViewPadding(10, 10, 10, 10, mView); |
|
4 |
mTextView.setTextSize(getTextSize(30)); |
本文介绍了一种在Android开发中实现界面元素自动适配不同屏幕尺寸的方法。通过计算屏幕与设计稿之间的缩放比例,可以确保应用界面在各种设备上保持一致的视觉效果。

211

被折叠的 条评论
为什么被折叠?



