1. android dp与px相互转换
public class DensityUtil{
public static int dip2px(Contextcontext,floatdpValue){
final float scale=context.getResources().getDisplayMetrics().density;
return(int)(dpValue*scale+0.5f);
public static int px2dip(Contextcontext,floatpxValue){
final float scale=context.getResources().getDisplayMetrics().density;
return(int)(pxValue/scale+0.5f);
2.android 对话框
<stylename="MyDialog"parent="@android:Theme.Dialog">
<itemname="android:windowNoTitle">true</item>
<itemname="android:windowBackground">@color/ha</item>
</style>
3.android 依据uri获取路径
Uri uri=data.getData();
String[] proj={MediaStore.Images.Media.DATA};
Cursor actualimagecursor=managedQuery(uri,proj,null,null,null);
intactual_image_column_index=actualimagecursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
actualimagecursor.moveToFirst();
String img_path=actualimagecursor.getString(actual_image_column_index);
File file=new File(img_path);
4.android 依据uri获取真正路径
public static String getRealFilePath(finalContextcontext,finalUriuri){
if(null==uri)return null;
final String scheme=uri.getScheme();
String data=null;
if(scheme==null)
data=uri.getPath();
else if(ContentResolver.SCHEME_FILE.equals(scheme)){
data=uri.getPath();
}else if(ContentResolver.SCHEME_CONTENT.equals(scheme)){
Cursorcursor=context.getContentResolver().query(uri,newString[]{ImageColumns.DATA},null,null,null);
if(null!=cursor){
if(cursor.moveToFirst()){
int index=cursor.getColumnIndex(ImageColumns.DATA);
if(index>-1){
data=cursor.getString(index);
cursor.close();
return data;
5.android 恢复短信代码
ContentValues values=new ContentValues();
values.put("address","123456789");
values.put("body","haha");
values.put("date","135123000000");
getContentResolver().insert(Uri.parse("content://sms/sent"),values);
6.android 横竖屏切换代码
<activity android:name="MyActivity"
android:configChanges="orientation|keyboardHidden">
public void onConfigurationChanged(ConfigurationnewConfig){
super.onConfigurationChanged(newConfig);
if(this.getResources().getConfiguration().orientation==Configuration.ORIENTATION_LANDSCAPE){
//加入横屏要处理的代码
}else if(this.getResources().getConfiguration().orientation==Configuration.ORIENTATION_PORTRAIT){
//加入竖屏要处理的代码
7.android 获得mac地址
1、<uses-permissionandroid:name="android.permission.ACCESS_WIFI_STATE"/>
2、private String getLocalMacAddress(){
WifiManager wifi=(WifiManager)getSystemService(Context.WIFI_SERVICE);
WifiInfo info=wifi.getConnectionInfo();
return info.getMacAddress();
8.android 获得sd卡状态
File sdcardDir=Environment.getExternalStorageDirectory();
StatFs statFs=new StatFs(sdcardDir.getPath());
/**Block的size*/
Long blockSize=statFs.getBlockSize();
/**总Block数量*/
Long totalBlocks=statFs.getBlockCount();
/**已使用的Block数量*/
Long availableBlocks=statFs.getAvailableBlocks();
9. Android获取状态栏与标题栏的高度
1.Android获取状态栏高度:
Rect frame=new Rect();
getWindow().getDecorView().getWindowVisibleDisplayFrame(frame);
int statusBarHeight=frame.top;
2.获取标题栏高度:
int contentTop=getWindow().findViewById(Window.ID_ANDROID_CONTENT).getTop();
//statusBarHeight是上面所求的状态栏的高度
int titleBarHeight=contentTop-statusBarHeight
获取状态栏高度
Rect frame=new Rect();
getWindow().getDecorView().getWindowVisibleDisplayFrame(frame);
int statusBarHeight=frame.top;
获取标题栏高度
int contentTop=getWindow().findViewById(Window.ID_ANDROID_CONTENT).getTop();
//statusBarHeight是上面所求的状态栏的高度
int titleBarHeight=contentTop-statusBarHeight
10.android 禁用home键盘
public boolean onKeyDown(int keyCode,KeyEvent event){
if(KeyEvent.KEYCODE_HOME==keyCode)
android.os.Process.killProcess(android.os.Process.myPid());
returnsuper.onKeyDown(keyCode,event);
public void onAttachedToWindow(){
//TODOAuto-generatedmethodstub
this.getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD);
super.onAttachedToWindow();
加权限禁止Home键
<uses-permissionandroid:name="android.permission.DISABLE_KEYGUARD"></uses-permission>
12.android 控制对话框位置
window=dialog.getWindow();// 得到对话框的窗口.
WindowManager.LayoutParamswl=window.getAttributes();
wl.x=x;//这两句设置了对话框的位置.0为中间
wl.y=y;
wl.width=w;
wl.height=h;
wl.alpha=0.6f;//这句设置了对话框的透明度
13.android 挪动dialog的位置
Window mWindow=dialog.getWindow();
WindowManager.LayoutParamslp=mWindow.getAttributes();
lp.x=10;//新位置X坐标
lp.y=-100;//新位置Y坐标
dialog.onWindowAttributesChanged(lp);
14.android 判断网络状态
<uses-permission
android:name="android.permission.ACCESS_NETWORK_STATE"/>
private boolean getNetWorkStatus(){
boolean netSataus=false;
ConnectivityManager cwjManager=(ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE);
cwjManager.getActiveNetworkInfo();
if(cwjManager.getActiveNetworkInfo()!=null){
netSataus=cwjManager.getActiveNetworkInfo().isAvailable();
if(!netSataus){
Builder b=new AlertDialog.Builder(this).setTitle("没有可用的网络")
.setMessage("是否对网络进行设置?");
b.setPositiveButton("是",newDialogInterface.OnClickListener(){
public void onClick(DialogInterfacedialog,intwhichButton){
Intent mIntent=new Intent("/");
ComponentName comp=new ComponentName(
"com.android.settings",
"com.android.settings.WirelessSettings");
mIntent.setComponent(comp);
mIntent.setAction("android.intent.action.VIEW");
startActivityForResult(mIntent,0);
}).setNeutralButton("否",newDialogInterface.OnClickListener(){
public void onClick(DialogInterface dialog,int whichButton){
dialog.cancel();
}).show();
return netSataus;
15. android 设置apn
ContentValues values=new ContentValues();
values.put(NAME,"CMCCcmwap");
values.put(APN,"cmwap");
values.put(PROXY,"10.0.0.172");
values.put(PORT,"80");
values.put(MMSPROXY,"");
values.put(MMSPORT,"");
values.put(USER,"");
values.put(SERVER,"");
values.put(PASSWORD,"");
values.put(MMSC,"");
values.put(TYPE,"");
values.put(MCC,"460");
values.put(MNC,"00");
values.put(NUMERIC,"46000");
reURI=getContentResolver().insert(Uri.parse("content://telephony/carriers"),values);
//首选接入点"content://telephony/carriers/preferapn"
16.android 调节屏幕亮度
public void setBrightness(intlevel){
ContentResolver cr=getContentResolver();
Settings.System.putInt(cr,"screen_brightness",level);
Windowwindow=getWindow();
LayoutParams attributes=window.getAttributes();
float flevel=level;
attributes.screenBrightness=flevel/255;
getWindow().setAttributes(attributes);
17.android 重启
第一,root权限,这是必须的
第二,Runtime.getRuntime().exec("su-creboot");
第三,模拟器上运行不出来,必须真机
第四,运行时会提示你是否加入列表,同意就好
18.android隐藏软键盘
setContentView(R.layout.activity_main);
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE|
WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN);
19.android隐藏以及显示软键盘以及不自动弹出键盘的方法
1、//隐藏软键盘
((InputMethodManager)getSystemService(INPUT_METHOD_SERVICE)).hideSoftInputFromWindow(WidgetSearchActivity.this.getCurrentFocus().getWindowToken(),InputMethodManager.HIDE_NOT_ALWAYS);
2、//显示软键盘,控件ID可以是EditText,TextView
((InputMethodManager)getSystemService(INPUT_METHOD_SERVICE)).showSoftInput(控件ID,0);
22.BitMap、Drawable、inputStream及byte[] 互转
(1)BitMaptoinputStream:
ByteArrayOutputStreambaos=newByteArrayOutputStream();
bm.compress(Bitmap.CompressFormat.PNG,100,baos);
InputStreamisBm=newByteArrayInputStream(baos.toByteArray());
(2)BitMaptobyte[]:
BitmapdefaultIcon=BitmapFactory.decodeStream(in);
ByteArrayOutputStreamstream=newByteArrayOutputStream();
defaultIcon.compress(Bitmap.CompressFormat.JPEG,100,stream);
byte[]bitmapdata=stream.toByteArray();
(3)Drawabletobyte[]:
Drawabled;//thedrawable(CaptainObvious,totherescue!!!)
Bitmapbitmap=((BitmapDrawable)d).getBitmap();
ByteArrayOutputStreamstream=newByteArrayOutputStream();
defaultIcon.compress(Bitmap.CompressFormat.JPEG,100,bitmap);
byte[]bitmapdata=stream.toByteArray();
(4)byte[]toBitmap:
Bitmapbitmap=BitmapFactory.decodeByteArray(byte[],0,byte[].length);
23.发送指令
out=process.getOutputStream();
out.write(("amstart-aandroid.intent.action.VIEW-ncom.android.browser/com.android.browser.BrowserActivityn").getBytes());
out.flush();
InputStream in=process.getInputStream();
BufferedReader re=new BufferedReader(new InputStreamReader(in));
String line=null;
while((line=re.readLine())!=null){
Log.d("conio","[result]"+line);