dip转px
1
2
3
4
5
|
public
int
convertDipOrPx(
int
dip) {
float
scale = MarketApplication.getMarketApplicationContext()
.getResources().getDisplayMetrics().density;
return
(
int
) (dip * scale +
0
.5f * (dip >=
0
?
1
: -
1
));
}
|
获取当前窗体,并添加自定义view:
1
2
3
4
5
6
7
8
9
10
|
getWindowManager()
.addView(
overlay,
new
WindowManager.LayoutParams(
LayoutParams.WRAP_CONTENT,
LayoutParams.WRAP_CONTENT,
WindowManager.LayoutParams.TYPE_APPLICATION,
WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE
| WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE,
PixelFormat.TRANSLUCENT));
|
自定义fastScrollBar图片样式:
1
2
3
4
5
6
7
8
9
10
11
12
13
|
try
{
Field f = AbsListView.
class
.getDeclaredField(
"mFastScroller"
);
f.setAccessible(
true
);
Object o = f.get(listView);
f = f.getType().getDeclaredField(
"mThumbDrawable"
);
f.setAccessible(
true
);
Drawable drawable = (Drawable) f.get(o);
drawable = getResources().getDrawable(R.drawable.ic_launcher);
f.set(o, drawable);
Toast.makeText(
this
, f.getType().getName(),
1000
).show();
}
catch
(Exception e) {
throw
new
RuntimeException(e);
}
|
=网络==================================
判断网络是否可用:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
/**
* 网络是否可用
*
* @param context
* @return
*/
public
static
boolean
isNetworkAvailable(Context context) {
ConnectivityManager mgr = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo[] info = mgr.getAllNetworkInfo();
if
(info !=
null
) {
for
(
int
i =
0
; i < info.length; i++) {
if
(info[i].getState() == NetworkInfo.State.CONNECTED) {
return
true
;
}
}
}
return
false
;
}
|
方法二:
1
2
3
4
5
6
7
8
9
10
11
12
13
|
/*
* 判断网络连接是否已开 2012-08-20true 已打开 false 未打开
*/
public
static
boolean
isConn(Context context) {
boolean
bisConnFlag =
false
;
ConnectivityManager conManager = (ConnectivityManager) context
.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo network = conManager.getActiveNetworkInfo();
if
(network !=
null
) {
bisConnFlag = conManager.getActiveNetworkInfo().isAvailable();
}
return
bisConnFlag;
}
|
判断是不是Wifi连接:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
public
static
boolean
isWifiActive(Context icontext) {
Context context = icontext.getApplicationContext();
ConnectivityManager connectivity = (ConnectivityManager) context
.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo[] info;
if
(connectivity !=
null
) {
info = connectivity.getAllNetworkInfo();
if
(info !=
null
) {
for
(
int
i =
0
; i < info.length; i++) {
if
(info[i].getTypeName().equals(
"WIFI"
)
&& info[i].isConnected()) {
return
true
;
}
}
}
}
return
false
;
}
|
判断当前网络类型
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
/**
* 网络方式检查
*/
private
static
int
netCheck(Context context) {
ConnectivityManager conMan = (ConnectivityManager) context
.getSystemService(Context.CONNECTIVITY_SERVICE);
State mobile = conMan.getNetworkInfo(ConnectivityManager.TYPE_MOBILE)
.getState();
State wifi = conMan.getNetworkInfo(ConnectivityManager.TYPE_WIFI)
.getState();
if
(wifi.equals(State.CONNECTED)) {
return
DO_WIFI;
}
else
if
(mobile.equals(State.CONNECTED)) {
return
DO_3G;
}
else
{
return
NO_CONNECTION;
}
}
|
获取下载文件的真实名字
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
|
public
String getReallyFileName(String url) {
StrictMode.setThreadPolicy(
new
StrictMode.ThreadPolicy.Builder()
.detectDiskReads().detectDiskWrites().detectNetwork()
// 这里可以替换为detectAll()
// 就包括了磁盘读写和网络I/O
.penaltyLog()
// 打印logcat,当然也可以定位到dropbox,通过文件保存相应的log
.build());
StrictMode.setVmPolicy(
new
StrictMode.VmPolicy.Builder()
.detectLeakedSqlLiteObjects()
// 探测SQLite数据库操作
.penaltyLog()
// 打印logcat
.penaltyDeath().build());
String filename =
""
;
URL myURL;
HttpURLConnection conn =
null
;
if
(url ==
null
|| url.length() <
1
) {
return
null
;
}
try
{
myURL =
new
URL(url);
conn = (HttpURLConnection) myURL.openConnection();
conn.connect();
conn.getResponseCode();
URL absUrl = conn.getURL();
// 获得真实Url
// 打印输出服务器Header信息
// Map
// for (String str : map.keySet()) {
// if (str != null) {
// Log.e("H3c", str + map.get(str));
// }
// }
filename = conn.getHeaderField(
"Content-Disposition"
);
// 通过Content-Disposition获取文件名,这点跟服务器有关,需要灵活变通
if
(filename ==
null
|| filename.length() <
1
) {
filename = URLDecoder.decode(absUrl.getFile(),
"UTF-8"
);
}
}
catch
(MalformedURLException e) {
e.printStackTrace();
}
catch
(IOException e) {
e.printStackTrace();
}
finally
{
if
(conn !=
null
) {
conn.disconnect();
conn =
null
;
}
}
return
filename;
}
|
=图片==========================
bitmap转Byte数组(微信分享就需要用到)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
public
byte
[] bmpToByteArray(
final
Bitmap bmp,
final
boolean
needRecycle) {
ByteArrayOutputStream output =
new
ByteArrayOutputStream();
bmp.compress(CompressFormat.PNG,
100
, output);
if
(needRecycle) {
bmp.recycle();
}
byte
[] result = output.toByteArray();
try
{
output.close();
}
catch
(Exception e) {
e.printStackTrace();
}
return
result;
}
|
1
2
3
4
5
6
7
8
9
|
public
Bitmap loadBitmap(Resources res,
int
id) {
BitmapFactory.Options opt =
new
BitmapFactory.Options();
opt.inPreferredConfig = Bitmap.Config.RGB_565;
opt.inPurgeable =
true
;
opt.inInputShareable =
true
;
InputStream is = res.openRawResource(id);
// 获取资源图片
return
BitmapFactory.decodeStream(is,
null
, opt);
}
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
|
public
void
saveBitmapToFile(String url, String filePath) {
File iconFile =
new
File(filePath);
if
(!iconFile.getParentFile().exists()) {
iconFile.getParentFile().mkdirs();
}
if
(iconFile.exists() && iconFile.length() >
0
) {
return
;
}
FileOutputStream fos =
null
;
InputStream is =
null
;
try
{
fos =
new
FileOutputStream(filePath);
is =
new
URL(url).openStream();
int
data = is.read();
while
(data != -
1
) {
fos.write(data);
data = is.read();
}
}
catch
(IOException e) {
e.printStackTrace();
}
finally
{
try
{
if
(is !=
null
) {
is.close();
}
if
(fos !=
null
) {
fos.close();
}
}
catch
(IOException e) {
e.printStackTrace();
}
}
}
|
=系统==============================
根据包名打开一个应用程序
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
|
public
boolean
openApp(String packageName) {
PackageInfo pi =
null
;
try
{
pi = mPM.getPackageInfo(packageName,
0
);
}
catch
(NameNotFoundException e) {
e.printStackTrace();
return
false
;
}
if
(pi ==
null
) {
return
false
;
}
Intent resolveIntent =
new
Intent(Intent.ACTION_MAIN,
null
);
resolveIntent.addCategory(Intent.CATEGORY_LAUNCHER);
resolveIntent.setPackage(pi.packageName);
List
0
);
ResolveInfo ri =
null
;
try
{
ri = apps.iterator().next();
}
catch
(Exception e) {
return
true
;
}
if
(ri !=
null
) {
String tmpPackageName = ri.activityInfo.packageName;
String className = ri.activityInfo.name;
Intent intent =
new
Intent(Intent.ACTION_MAIN);
intent.addCategory(Intent.CATEGORY_LAUNCHER);
ComponentName cn =
new
ComponentName(tmpPackageName, className);
intent.setComponent(cn);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
MarketApplication.getMarketApplicationContext().startActivity(
intent);
}
else
{
return
false
;
}
return
true
;
}
|
判断是否APK是否安装过
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
public
boolean
checkApkExist(Context context, String packageName) {
if
(packageName ==
null
||
""
.equals(packageName))
return
false
;
try
{
ApplicationInfo info = context.getPackageManager()
.getApplicationInfo(packageName,
PackageManager.GET_UNINSTALLED_PACKAGES);
return
true
;
}
catch
(NameNotFoundException e) {
return
false
;
}
catch
(NullPointerException e) {
return
false
;
}
}
|
安装APK
1
2
3
4
5
6
7
8
9
|
public
void
installApk(Context context, String strFileAllName) {
File file =
new
File(strFileAllName);
Intent intent =
new
Intent();
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.setAction(Intent.ACTION_VIEW);
String type =
"application/vnd.android.package-archive"
;
intent.setDataAndType(Uri.fromFile(file), type);
context.startActivity(intent);
}
|
卸载APK
1
2
3
4
5
|
public
void
UninstallApk(Context context, String strPackageName) {
Uri packageURI = Uri.parse(
"package:"
+ strPackageName);
Intent uninstallIntent =
new
Intent(Intent.ACTION_DELETE, packageURI);
context.startActivity(uninstallIntent);
}
|
判断SD卡是否可用
1
2
3
4
5
6
7
8
|
public
boolean
CheckSD() {
if
(android.os.Environment.getExternalStorageState().equals(
android.os.Environment.MEDIA_MOUNTED)) {
return
true
;
}
else
{
return
false
;
}
}
|
创建快捷方式:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
public
void
createShortCut(Context contxt) {
// if (isInstallShortcut()) {// 如果已经创建了一次就不会再创建了
// return;
// }
Intent sIntent =
new
Intent(Intent.ACTION_MAIN);
sIntent.addCategory(Intent.CATEGORY_LAUNCHER);
// 加入action,和category之后,程序卸载的时候才会主动将该快捷方式也卸载
sIntent.setClass(contxt, Login.
class
);
Intent installer =
new
Intent();
installer.putExtra(
"duplicate"
,
false
);
installer.putExtra(
"android.intent.extra.shortcut.INTENT"
, sIntent);
installer.putExtra(
"android.intent.extra.shortcut.NAME"
,
"名字"
);
installer.putExtra(
"android.intent.extra.shortcut.ICON_RESOURCE"
,
Intent.ShortcutIconResource
.fromContext(contxt, R.drawable.icon));
installer.setAction(
"com.android.launcher.action.INSTALL_SHORTCUT"
);
contxt.sendBroadcast(installer);
}
|
判断快捷方式是否创建:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
|
private
|