Skip to content

Commit e629b0c

Browse files
committed
[commit] updateNetUtils ViewUtils
1 parent eed390a commit e629b0c

File tree

4 files changed

+124
-24
lines changed

4 files changed

+124
-24
lines changed

README.md

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -44,8 +44,9 @@
4444
- NetUtils.java 网络工具
4545
* getNetworkType 获取网络类型
4646
* getNetworkTypeName 获取网络名称
47-
* checkNet 检查网络状态
47+
* isConnected 检查网络状态
4848
* isWiFi 是否wifi
49+
* openNetSetting 打开网络设置界面
4950
* isNetworkAvailable 网络可用性
5051

5152
- SPUtils.java SharedPreferences工具
@@ -73,11 +74,18 @@
7374
* getDeviceUsableMemory 获取设备可用空间
7475
* gc 清理后台进程和服务
7576
* createDeskShortCut 创建桌面快捷方式
76-
* captureView 控件截图
7777

7878
- ViewUtils.java View工具
79+
* captureView 截图
80+
* createViewBitmap 截图
81+
* convertViewToBitmap 截图
82+
* getStatusBarHeight 获取状态栏高度
83+
* getToolbarHeight 获取工具栏高度
84+
* getNavigationBarHeight 获取导航栏高度
85+
* getScreenSize 获取屏幕尺寸
7986

80-
## License
87+
License
88+
----
8189
Copyright (C) 2016 android@19code.com
8290

8391
Licensed under the Apache License, Version 2.0 (the "License");

library/src/main/java/com/code19/library/NetUtils.java

Lines changed: 25 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,10 @@
1616

1717
package com.code19.library;
1818

19+
import android.app.Activity;
20+
import android.content.ComponentName;
1921
import android.content.Context;
22+
import android.content.Intent;
2023
import android.net.ConnectivityManager;
2124
import android.net.NetworkInfo;
2225
import android.telephony.TelephonyManager;
@@ -71,8 +74,7 @@ public static String getNetworkTypeName(Context context) {
7174
type = NETWORK_TYPE_WIFI;
7275
} else if ("MOBILE".equalsIgnoreCase(typeName)) {
7376
String proxyHost = android.net.Proxy.getDefaultHost();
74-
type = TextUtils.isEmpty(proxyHost) ? (isFastMobileNetwork(context) ? NETWORK_TYPE_3G : NETWORK_TYPE_2G)
75-
: NETWORK_TYPE_WAP;
77+
type = TextUtils.isEmpty(proxyHost) ? (isFastMobileNetwork(context) ? NETWORK_TYPE_3G : NETWORK_TYPE_2G) : NETWORK_TYPE_WAP;
7678
} else {
7779
type = NETWORK_TYPE_UNKNOWN;
7880
}
@@ -83,10 +85,15 @@ public static String getNetworkTypeName(Context context) {
8385
/**
8486
* 判断网络是否连接
8587
*/
86-
public static boolean checkNet(Context context) {
88+
public static boolean isConnected(Context context) {
8789
ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
8890
NetworkInfo info = cm.getActiveNetworkInfo();
89-
return info != null;
91+
if (info != null && info.isConnected()) {
92+
if (info.getState() == NetworkInfo.State.CONNECTED) {
93+
return true;
94+
}
95+
}
96+
return false;
9097
}
9198

9299
/**
@@ -96,8 +103,20 @@ public static boolean isWiFi(Context cxt) {
96103
ConnectivityManager cm = (ConnectivityManager) cxt.getSystemService(Context.CONNECTIVITY_SERVICE);
97104
// wifi的状态:ConnectivityManager.TYPE_WIFI
98105
// 3G的状态:ConnectivityManager.TYPE_MOBILE
99-
NetworkInfo.State state = cm.getNetworkInfo(ConnectivityManager.TYPE_WIFI).getState();
100-
return NetworkInfo.State.CONNECTED == state;
106+
return cm.getActiveNetworkInfo().getType() == ConnectivityManager.TYPE_WIFI;
107+
}
108+
109+
/**
110+
* 打开网络设置界面
111+
*
112+
* @param act 启动设置的activity
113+
*/
114+
public static void openNetSetting(Activity act) {
115+
Intent intent = new Intent();
116+
ComponentName cm = new ComponentName("com.android.settings", "com.android.settings.WirelessSettings");
117+
intent.setComponent(cm);
118+
intent.setAction("android.intent.action.VIEW");
119+
act.startActivityForResult(intent, 0);
101120
}
102121

103122
/**

library/src/main/java/com/code19/library/SystemUtils.java

Lines changed: 3 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -27,11 +27,9 @@
2727
import android.content.pm.PackageInfo;
2828
import android.content.pm.PackageManager;
2929
import android.content.pm.PackageManager.NameNotFoundException;
30-
import android.graphics.Bitmap;
3130
import android.net.Uri;
3231
import android.os.Parcelable;
3332
import android.telephony.TelephonyManager;
34-
import android.view.View;
3533
import android.view.inputmethod.InputMethodManager;
3634

3735
import java.io.File;
@@ -40,7 +38,7 @@
4038

4139
/**
4240
* 系统信息工具包<br>
43-
* <p/>
41+
* <p>
4442
* <b>创建时间</b> 2014-8-14
4543
*
4644
* @author kymjs (https://github.com/kymjs)
@@ -88,7 +86,7 @@ public static void sendSMS(Context cxt, String smsBody) {
8886

8987
/**
9088
* 隐藏系统键盘
91-
* <p/>
89+
* <p>
9290
* <br>
9391
* <b>警告</b> 必须是确定键盘显示时才能调用
9492
*/
@@ -306,15 +304,5 @@ public void createDeskShortCut(Context cxt, int icon, String title, Class<?> cls
306304
cxt.sendBroadcast(shortcutIntent);
307305
}
308306

309-
/**
310-
* 截图
311-
*
312-
* @param v 需要进行截图的控件
313-
* @return 该控件截图的Bitmap对象。
314-
*/
315-
public static Bitmap captureView(View v) {
316-
v.setDrawingCacheEnabled(true);
317-
v.buildDrawingCache();
318-
return v.getDrawingCache();
319-
}
307+
320308
}

library/src/main/java/com/code19/library/ViewUtils.java

Lines changed: 85 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,16 +16,22 @@
1616

1717
package com.code19.library;
1818

19+
import android.app.Activity;
1920
import android.content.Context;
21+
import android.content.res.Resources;
22+
import android.content.res.TypedArray;
2023
import android.graphics.Bitmap;
24+
import android.graphics.Canvas;
2125
import android.graphics.Matrix;
2226
import android.graphics.Paint;
27+
import android.graphics.Point;
2328
import android.graphics.drawable.BitmapDrawable;
2429
import android.view.LayoutInflater;
2530
import android.view.MotionEvent;
2631
import android.view.View;
2732
import android.view.ViewGroup;
2833
import android.view.ViewParent;
34+
import android.view.WindowManager;
2935
import android.widget.PopupWindow;
3036
import android.widget.TextView;
3137

@@ -160,4 +166,83 @@ public static void dismissPopup() {
160166
popupWindow = null;
161167
}
162168
}
169+
170+
/**
171+
* 截图
172+
*/
173+
public static Bitmap captureView(View v) {
174+
v.setDrawingCacheEnabled(true);
175+
v.buildDrawingCache();
176+
return v.getDrawingCache();
177+
}
178+
179+
/**
180+
* 截图
181+
*/
182+
public static Bitmap createViewBitmap(View v) {
183+
Bitmap bitmap = Bitmap.createBitmap(v.getWidth(), v.getHeight(), Bitmap.Config.ARGB_8888);
184+
Canvas canvas = new Canvas(bitmap);
185+
v.draw(canvas);
186+
return bitmap;
187+
}
188+
189+
/**
190+
* 截图
191+
*/
192+
public static Bitmap convertViewToBitmap(View view) {
193+
view.measure(View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED), View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED));
194+
view.layout(0, 0, view.getMeasuredWidth(), view.getMeasuredHeight());
195+
view.buildDrawingCache();
196+
return view.getDrawingCache();
197+
}
198+
199+
/**
200+
* 获取状态栏的高度
201+
*
202+
* @param context 上下文
203+
* @return 状态栏高度
204+
*/
205+
public static int getStatusBarHeight(Context context) {
206+
int result = 0;
207+
int resourceId = context.getResources().getIdentifier("status_bar_height", "dimen", "android");
208+
if (resourceId > 0) {
209+
result = context.getResources().getDimensionPixelSize(resourceId);
210+
}
211+
return result;
212+
}
213+
214+
/**
215+
* 获取ToolBar的高度
216+
*
217+
* @param context
218+
* @return
219+
*/
220+
public static int getToolbarHeight(Context context) {
221+
final TypedArray styledAttributes = context.getTheme().obtainStyledAttributes(new int[]{R.attr.actionBarSize});
222+
int toolbarHeight = (int) styledAttributes.getDimension(0, 0);
223+
styledAttributes.recycle();
224+
return toolbarHeight;
225+
}
226+
227+
public static int getNavigationBarHeight(Activity activity) {
228+
Resources resources = activity.getResources();
229+
int resourceId = resources.getIdentifier("navigation_bar_height", "dimen", "android");
230+
if (resourceId > 0) {
231+
return resources.getDimensionPixelSize(resourceId);
232+
}
233+
return 0;
234+
}
235+
236+
/**
237+
* 获取屏幕尺寸
238+
*
239+
* @param context 上下文
240+
* @return 屏幕尺寸像素值,下标为0的值为宽,下标为1的值为高
241+
*/
242+
public static Point getScreenSize(Context context) {
243+
WindowManager wm = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);
244+
Point screenSize = new Point();
245+
wm.getDefaultDisplay().getSize(screenSize);
246+
return screenSize;
247+
}
163248
}

0 commit comments

Comments
 (0)