推荐下载android开发实用代码片段集合更新ingWord格式文档下载.docx
《推荐下载android开发实用代码片段集合更新ingWord格式文档下载.docx》由会员分享,可在线阅读,更多相关《推荐下载android开发实用代码片段集合更新ingWord格式文档下载.docx(22页珍藏版)》请在冰豆网上搜索。
color=#53c1bd
android:
state_focused=true/itemandroid:
color=#53c1bdandroid:
state_pressed=true/
itemandroid:
color=#777777//selector放在res/color/目录下
4、背景色根据状态更改颜色android:
backgroup
state_selected=
trueshapegradientandroid:
angle=0android:
centerColor=#00a59fandroid:
endColor=
#00a59fandroid:
startColor=#00a59f//shape/itemitemandroid:
state_focused=true
shapegradientandroid:
state_pressed=true
startColor=#00a59f//shape/itemitemshape
gradientandroid:
centerColor=#00ff00android:
endColor=00ff00
startColor=00ff00//shape/item/selector
如果直接给背景色color会报错。
5、启动APK的默认Activity
publicstaticvoidstartApkActivity(finalContextctx,StringpackageName){PackageManagerp
m=ctx.getPackageManager();
PackageInfopi;
try{pi=pm.getPackageInfo(packageName,0);
I
ntentintent=newIntent(Intent.ACTION_MAIN,null);
intent.addCategory(Intent.CATEGOR
Y_LAUNCHER);
intent.setPackage(pi.packageName);
ListResolveInfo
apps=pm.queryIntentActivities(intent,0);
ResolveInfori=apps.iterator().next();
if(ri!
=null){S
tringclassName=ri.activityInfo.name;
intent.setComponent(newComponentName(package
Name,className));
ctx.startActivity(intent);
}}catch(NameNotFoundExceptione){Log.e(
startActivity,e);
}}
7、计算字宽
publicstaticfloatGetTextWidth(String
text,floatSize){TextPaintFontPaint=newTextPaint();
FontPaint.setTextSize(Size);
returnFon
tPaint.measureText(text);
}8、获取应用程序下所有Activity
publicstaticArrayListStringgetActivities(Contextctx){ArrayListString
result=newArrayListString
Intentintent=newIntent(Intent.ACTION_MAIN,null);
intent.setPackage(ctx.getPackageNa
me());
for(ResolveInfoinfo:
ctx.getPackageManager().queryIntentActivities(intent,0)){result
.add(info.activityInfo.name);
}returnresult;
9、检测字符串中是否包含汉字
publicstaticbooleancheckChinese(Stringsequence){finalStringformat=[\\u4E00-
\\u9FA5\\uF900-\\uFA2D]
booleanresult=false;
Patternpattern=Patrnpattern=Patternpile(format);
Matchermatcher=patt
ern.matcher(sequence);
return!
matcher.find();
11、检查有没有应用程序来接受处理你发出的intent
publicstaticbooleanisIntentAvailable(Contextcontext,Stringaction){final
PackageManagerpackageManager=context.getPackageManager();
finalIntentintent=
newIntent(action);
ListResolveInfolist=packageManager.queryIntentActivities(intent,
PackageManager.MATCH_DEFAULT_ONLY);
returnlist.size()0;
}
12、使用TransitionDrawable实现渐变效果
privatevoidsetImageBitmap(ImageViewimageView,Bitmapbitmap){//UseTransitionDrawa
bletofadein.finalTransitionDrawabletd=newTransitionDrawable(newDrawable[]{newColo
rDrawable(android.R.color.transparent),newBitmapDrawable(mContext.getResources(),bit
map)});
//noinspectiondeprecationimageView.setBackgroundDrawable(imageView.getDra
wable());
imageView.setImageDrawable(td);
td.startTransition(200);
}比使用
AlphaAnimation效果要好,可避免出现闪烁问题。
13、扫描指定的文件
sendBroadcast(newIntent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE,uri));
用
途:
从本软件新增、修改、删除图片、文件某一个文件(音频、视频)需要更新系
统媒体库时使用,不必扫描整个SD卡。
14、Dip转px
publicstaticintdipToPX(finalContextctx,floatdip){return(int)TypedValue.applyDimension(
TypedValue.COMPLEX_UNIT_DIP,dip,ctx.getResources().getDisplayMetrics());
}15、
获取已经安装APK的路径
PackageManagerpm=getPackageManager();
for(ApplicationInfoapp:
pm.getInstalledApplic
ations(0)){Log.d(PackageList,package:
app.packageName,sourceDir:
app.sourceDir);
}输出如下:
package:
com.tmobile.thememanager,sourceDir:
/system/app/ThemeManager.apkpackage:
c
om.touchtype.swiftkey,sourceDir:
/data/app/com.touchtype.swiftkey-1.apk转载自这里。
16、多进程Preferences数据共享
publicstaticvoidputStringProcess(Contextctx,Stringkey,Stringvalue){SharedPreferencessha
redPreferences=ctx.getSharedPreferences(
preference_mu,Context.MODE_MULTI_PROCESS);
Editoreditor=sharedPreferences.edit
();
editor.putString(key,value);
editormit();
}publicstaticStringgetStringProcess(Contextctx,S
tringkey,StringdefValue){SharedPreferencessharedPreferences=ctx.getSharedPreferences(
returnsharedPreferences.getString(k
ey,defValue);
}相关文章:
zengrong/post/1687.htm
17、泛型ArrayList转数组
@SuppressWarnings(unchecked)publicstaticTT[]toArray(Class?
cls,ArrayListT
items){if(items==null||items.size()==0){return(T[])Array.newInstance(cls,0);
}returnitems.t
oArray((T[])Array.newInstance(cls,items.size()));
18、保存恢复ListView当前位置
privatevoidsaveCurrentPosition(){if(mListView!
=null){intposition=mListView.getFirstVi
siblePosition();
Viewv=mListView.getChildAt(0);
inttop=(v==null)?
0:
v.getTop();
//保存
position和top}}privatevoidrestorePosition(){if(mFolder!
=null
mListView!
=null){intposition=0;
//取出保存的数据inttop=0;
//取出保存的数据
mListView.setSelectionFromTop(position,top);
可以保存在Preference中或者是数据库中,数据加载完后再设置。
19、调用便携式热点和数据共享设置
publicstaticIntentgetHotspotSetting(){Intentintent=newIntent();
intent.setAction(Intent.AC
TION_MAIN);
ComponentNamecom=newComponentName(com.android.settings,
com.android.settings.TetherSettingsintent.setComponent(com);
returnintent;
20、式化输出IP地址
publicstaticStringgetIp(Contextctx){returnFormatter.formatIpAddress((WifiManager)ctx.g
etSystemService(Context.WIFI_SERVICE).getConnectionInfo().getIpAddress());
21、文件夹排序(先文件夹排序,后文件排序)
publicstaticvoidsortFiles(File[]files){Arrays.sort(files,newComparatorFile
(){@Overridepublicintcompare(Filelhs,Filerhs){//返回负数表示o1小于o2,返回0表
示o1和o2相等,返回正数表示o1大于o2。
booleanl1=lhs.isDirectory();
booleanl2=rhs.isDirectory();
if(l1!
l2)return-1;
elseif(!
l1
l2)return1;
else{returnlhs.getName()pareTo(rhs.getName());
}}});
}22、发送不重复的通知
(Notification)
publicstaticvoidsendNotification(Contextcontext,Stringtitle,Stringmessage,Bundleextras){I
ntentmIntent=newIntent(context,FragmentTabsActivity.class);
mIntent.setFlags(Intent.FLA
G_ACTIVITY_CLEAR_TOP);
mIntent.putExtras(extras);
intrequestCode=(int)System.curr
entTimeMillis();
PendingIntentmContentIntent=PendingIntent.getActivity(context,request
Code,mIntent,0);
NotificationmNotification=newNotificationCompat.Builder(context).setC
ontentTitle(title).setSmallIcon(R.drawable.app_icon).setContentIntent(mContentIntent).set
ContentText(message).build();
mNotification.flags|=Notification.FLAG_AUTO_CANCEL
;
mNotification.defaults=Notification.DEFAULT_ALL;
NotificationManagermNotification
Manager=(NotificationManager)context.getSystemService(Context.NOTIFICATION_SE
RVICE);
mNotificationManager.notify(requestCode,mNotification);
}代码说明:
关键点在这个requestCode,这里使用的是当前系统时间,巧妙的保证了每次都是
一个新的Notification产生。
23、代码设置TextView的样式
使用过自定义Dialog可能马上会想到用如下代码:
newTextView(this,null,R.style.text_style);
但你运行这代码你会发现毫无作用!
正确用法:
newTextView(newContextThemeWrapper(this,R.style.text_style))来自这里。
24、ip地址转成8位十六进制串
/**ip转16进制
*/publicstaticStringipToHex(Stringips){StringBufferresult=newStringBuffer();
if(ips!
){StringTokenizerst=newStringTokenizer(ips,.
while(st.hasMoreTokens()){Stringtoken=Integer.toHexString(Integer.parseInt(st.nextToke
n()));
if(token.length()==1)token=0
token;
result.append(token);
}}returnresult.toString();
}/**16进制转
ip*/publicstaticStringtexToIp(Stringips){try{StringBufferresult=newStringBuffer();
=nullips.length()==8){for(inti=0;
i8;
i
=2){if(i!
=0)result.append(‘.’);
result.append(Integer.parseInt(ips.substring(i,i
2),16));
}catch(NumberFormatExceptionex){Logger.e(ex);
}return
}ip:
192.168.68.12816=hex:
c0a84480
25、WebView保留缩放功能但隐藏缩放控件
mWebView.getSettings().setSupportZoom(true);
mWebView.getSettings().setBuiltInZoomControls(true);
if(DeviceUtils.hasHoneycomb())
mWebView.getSettings().setDisplayZoomControls(false);
注意:
setDisplayZoomControls
是在APILevel11中新增。
26、获取网络类型名称
publicstaticStringgetNetworkTypeName(Contextcontext){if(context!
=null){Connectivity
ManagerconnectMgr=(ConnectivityManager)context.getSystemService(Context.CONNE
CTIVITY_SERVICE);
if(connectMgr!
=null){NetworkInfoinfo=connectMgr.getActiveNet
workInfo();
if(info!
=null){switch(info.getType()){caseConnectivityManager.TYPE_WIFI:
r
eturnWIFI
caseConnectivityManager.TYPE_MOBILE:
returngetNetworkTypeName(info.getSubtype(
));
}}}}returngetNetworkTypeName(TelephonyManager.NETWORK_TYPE_UNKNOW
N);
}publicstaticStringgetNetworkTypeName(inttype){switch(type){caseTelephonyManag
er.NETWORK_TYPE_GPRS:
returnGPRS
caseTelephonyManager.NETWORK_TYPE_EDGE:
returnEDGE
caseTelephonyManager.NETWORK_TYPE_UMTS:
returnUMTS
caseTelephonyManager.NETWORK_TYPE_HSDPA:
returnHSDPA
caseTelephonyManager.NETWORK_TYPE_HSUPA:
returnHSUPA
caseTelephonyManager.NETWORK_TYPE_HSPA:
returnHSPA
caseTelephonyManager.NETWORK_TYPE_CDMA:
returnCDMA
caseTelephonyManager.NETWORK_TYPE_EVDO_0:
returnCDMA-EvDorev.0
caseTelephonyManager.NETWORK_TYPE_EVDO_A:
returnCDMA-EvDorev.A
caseTelephonyManager.NETWORK_TYPE_EVDO_B:
returnCDMA-EvDorev.B
caseTelephonyManager.NETWORK_TYPE_1xRTT:
returnCDMA-1xRTT
caseTelephonyManager.NETWORK_TYPE_LTE:
returnLTE
cas