一、获取应用程序下所有Activity
public static ArrayList getActivities(Context ctx) {
ArrayList result = new ArrayList();
Intent intent = new Intent(Intent.ACTION_MAIN, null);
intent.setPackage(ctx.getPackageName());
for (ResolveInfo info : ctx.getPackageManager().queryIntentActivities(intent, 0)) {
result.add(info.activityInfo.name);
}
return result;
}
二、检测字符串中是否包含汉字
public static boolean checkChinese(String sequence) {
final String format = "[\\u4E00-\\u9FA5\\uF900-\\uFA2D]";
boolean result = false;
Pattern pattern = Pattern.compile(format);
Matcher matcher = pattern.matcher(sequence);
result = matcher.find();
return result;
}
三、检测字符串中只能包含:中文、数字、下划线(_)、横线(-)
public
static
boolean
checkNickname(String
sequence)
{
final
String
format
=
"[^\\u4E00-\\u9FA5\\uF900-\\uFA2D\\w-_]";
Pattern
pattern
=
Pattern.compile(format);
Matcher
matcher
=
pattern.matcher(sequence);
return
!matcher.find();
}
四、使用TransitionDrawable实现渐变效果
private void setImageBitmap(ImageView imageView, Bitmap bitmap) {
// Use TransitionDrawable to fade in.
final TransitionDrawable td = new TransitionDrawable(new Drawable[] { new ColorDrawable(android.R.color.transparent), new BitmapDrawable(mContext.getResources(), bitmap) });
//noinspection deprecation
imageView.setBackgroundDrawable(imageView.getDrawable());
imageView.setImageDrawable(td);
td.startTransition(200);
}
比使用AlphaAnimation效果要好,可避免出现闪烁问题。
五、扫描指定的文件
public
static
int
dipToPX(
final
Context
ctx,
float
dip)
{
return
(
int)TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP,
dip,
ctx.getResources().getDisplayMetrics());
}
用途:难免在Activity代码中设置位置、大小等,本方法就很有用了!
七、发送不重复的通知(Notification)
public
static
void
sendNotification(Context
context,
String
title,
String
message,
Bundle
extras)
{
Intent
mIntent
=
new
Intent(context,
FragmentTabsActivity.
class);
mIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
mIntent.putExtras(extras);
int
requestCode
=
(
int)
System.currentTimeMillis();
PendingIntent
mContentIntent
=
PendingIntent.getActivity(context,
requestCode,
mIntent,
0);
Notification
mNotification
=
new
NotificationCompat.Builder(context)
.setContentTitle(title).setSmallIcon(R.drawable.app_icon)
.setContentIntent(mContentIntent).setContentText(message)
.build();
mNotification.flags
|=
Notification.FLAG_AUTO_CANCEL;
mNotification.defaults
=
Notification.DEFAULT_ALL;
NotificationManager
mNotificationManager
=
(NotificationManager)
context
.getSystemService(Context.NOTIFICATION_SERVICE);
mNotificationManager.notify(requestCode,
mNotification);
}
public
static
String
ipToHex(String
ips)
{
StringBuffer
result
=
new
StringBuffer();
if
(ips
!=
null)
{
StringTokenizer
st
=
new
StringTokenizer(ips,
".");
while
(st.hasMoreTokens())
{
String
token
=
Integer.toHexString(Integer.parseInt(st.nextToken()));
if
(token.length()
==
1)
token
=
"0"
+
token;
result.append(token);
}
}
return
result.toString();
}
public
static
String
texToIp(String
ips)
{
try
{
StringBuffer
result
=
new
StringBuffer();
if
(ips
!=
null
&&
ips.length()
==
8)
{
for
(
int
i
=
0;
i
<
8;
i
+=
2)
{
if
(i
!=
0)
result.append('.');
result.append(Integer.parseInt(ips.substring(i,
i
+
2),
16));
}
}
return
result.toString();
}
catch
(NumberFormatException
ex)
{
Logger.e(ex);
}
return
"";
}
mWebView.getSettings().setSupportZoom(
true);
mWebView.getSettings().setBuiltInZoomControls(
true);
if
(DeviceUtils.hasHoneycomb())
mWebView.getSettings().setDisplayZoomControls(
false);
public
static
String
getNetworkTypeName(Context
context)
{
if
(context
!=
null)
{
ConnectivityManager
connectMgr
=
(ConnectivityManager)
context.getSystemService(Context.CONNECTIVITY_SERVICE);
if
(connectMgr
!=
null)
{
NetworkInfo
info
=
connectMgr.getActiveNetworkInfo();
if
(info
!=
null)
{
switch
(info.getType())
{
case
ConnectivityManager.TYPE_WIFI:
return
"WIFI";
case
ConnectivityManager.TYPE_MOBILE:
return
getNetworkTypeName(info.getSubtype());
}
}
}
}
return
getNetworkTypeName(TelephonyManager.NETWORK_TYPE_UNKNOWN);
}
public
static
String
getNetworkTypeName(
int
type)
{
switch
(type)
{
case
TelephonyManager.NETWORK_TYPE_GPRS:
return
"GPRS";
case
TelephonyManager.NETWORK_TYPE_EDGE:
return
"EDGE";
case
TelephonyManager.NETWORK_TYPE_UMTS:
return
"UMTS";
case
TelephonyManager.NETWORK_TYPE_HSDPA:
return
"HSDPA";
case
TelephonyManager.NETWORK_TYPE_HSUPA:
return
"HSUPA";
case
TelephonyManager.NETWORK_TYPE_HSPA:
return
"HSPA";
case
TelephonyManager.NETWORK_TYPE_CDMA:
return
"CDMA";
case
TelephonyManager.NETWORK_TYPE_EVDO_0:
return
"CDMA
-
EvDo
rev.
0";
case
TelephonyManager.NETWORK_TYPE_EVDO_A:
return
"CDMA
-
EvDo
rev.
A";
case
TelephonyManager.NETWORK_TYPE_EVDO_B:
return
"CDMA
-
EvDo
rev.
B";
case
TelephonyManager.NETWORK_TYPE_1xRTT:
return
"CDMA
-
1xRTT";
case
TelephonyManager.NETWORK_TYPE_LTE:
return
"LTE";
case
TelephonyManager.NETWORK_TYPE_EHRPD:
return
"CDMA
-
eHRPD";
case
TelephonyManager.NETWORK_TYPE_IDEN:
return
"iDEN";
case
TelephonyManager.NETWORK_TYPE_HSPAP:
return
"HSPA+";
default:
return
"UNKNOWN";
}
}
public
static
void
UnZipFolder(String
zipFileString,
String
outPathString)
throws
Exception
{
java.util.zip.ZipInputStream
inZip
=
new
java.util.zip.ZipInputStream(
new
java.io.FileInputStream(zipFileString));
java.util.zip.ZipEntry
zipEntry;
String
szName
=
"";
while
((zipEntry
=
inZip.getNextEntry())
!=
null)
{
szName
=
zipEntry.getName();
if
(zipEntry.isDirectory())
{
//
get the folder name of the widget
szName
=
szName.substring(0,
szName.length()
-
1);
java.io.File
folder
=
new
java.io.File(outPathString
+
java.io.File.separator
+
szName);
folder.mkdirs();
}
else
{
java.io.File
file
=
new
java.io.File(outPathString
+
java.io.File.separator
+
szName);
file.createNewFile();
//
get the output stream of the file
java.io.FileOutputStream
out
=
new
java.io.FileOutputStream(file);
int
len;
byte[]
buffer
=
new
byte[1024];
//
read (len) bytes into buffer
while
((len
=
inZip.read(buffer))
!=
-1)
{
//
write (len) byte from buffer at the position 0
out.write(buffer,
0,
len);
out.flush();
}
out.close();
}
}
//
end of while
inZip.close();
}
//
end of func
public
static
String
getTextFromAssets(
final
Context
context,
String
fileName)
{
String
result
=
"";
try
{
InputStream
in
=
context.getResources().getAssets().open(fileName);
//
获取文件的字节数
int
lenght
=
in.available();
//
创建byte数组
byte[]
buffer
=
new
byte[lenght];
//
将文件中的数据读到byte数组中
in.read(buffer);
result
=
EncodingUtils.getString(buffer,
"UTF-8");
in.close();
}
catch
(Exception
e)
{
e.printStackTrace();
}
return
result;
}
public
static
Drawable
loadImageFromAsserts(
final
Context
ctx,
String
fileName)
{
try
{
InputStream
is
=
ctx.getResources().getAssets().open(fileName);
return
Drawable.createFromStream(is,
null);
}
catch
(IOException
e)
{
if
(e
!=
null)
{
e.printStackTrace();
}
}
catch
(OutOfMemoryError
e)
{
if
(e
!=
null)
{
e.printStackTrace();
}
}
catch
(Exception
e)
{
if
(e
!=
null)
{
e.printStackTrace();
}
}
return
null;
}
转载自:
这里
public static ArrayList getActivities(Context ctx) {
二、检测字符串中是否包含汉字
public static boolean checkChinese(String sequence) {
三、检测字符串中只能包含:中文、数字、下划线(_)、横线(-)
四、使用TransitionDrawable实现渐变效果
private void setImageBitmap(ImageView imageView, Bitmap bitmap) {
比使用AlphaAnimation效果要好,可避免出现闪烁问题。
五、扫描指定的文件
sendBroadcast(
new
Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE,
uri));
用途:难免在Activity代码中设置位置、大小等,本方法就很有用了!
七、发送不重复的通知(Notification)
代码说明:关键点在这个requestCode,这里使用的是当前系统时间,巧妙的保证了每次都是一个新的Notification产生。
使用过自定义Dialog可能马上会想到用如下代码:
new
但你运行这代码你会发现毫无作用!正确用法:
new
九、 ip地址转成8位十六进制串
ip:192.168.68.128 16
注意:setDisplayZoomControls是在API Level 11中新增。
十二、Android解压Zip包