在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)); |