android 中常用的功能(自己总结)

1.    当按返回键时,完全按退出系统

@Override
protected void onDestroy() {
// TODO Auto-generated method stub
android.os.Process.killProcess(android.os.Process.myPid());
super.onDestroy();
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
// TODO Auto-generated method stub
if (keyCode == KeyEvent.KEYCODE_BACK) {
finish();
return true;
}
return super.onKeyDown(keyCode, event);
}
 

 


2.    不显示标题栏

 getWindow().requestFeature(Window.FEATURE_NO_TITLE);
或者是设置一个style属性,主题,加入下面的项
<item name="android:windowNoTitle">true</item>

设置背景半暗
LayoutParams lp = getWindow().getAttributes();
lp.dimAmount = 0.5f;
// 设置透明度是alpha的值
// lp.alpha = 0.8f;
getWindow().setAttributes(lp);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND);

设置背景模糊
getWindow().setFlags(WindowManager.LayoutParams.FLAG_BLUR_BEHIND,
WindowManager.LayoutParams.FLAG_BLUR_BEHIND);

3.     判断是否有可用网络

首先获取查看网络权限   在 AndroidManifest.xml文件添加权限

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />

然后获取连接管理服务

private ConnectivityManager getConnectManager() {
  return (ConnectivityManager) getSystemService("connectivity");
 }

最后判断网络是否可用

public boolean checknNetWork() {
  // 获取Wifi的状态
  boolean flag1 = getConnectManager().getNetworkInfo(ConnectivityManager.TYPE_WIFI).isConnected();
  // 获取手机网络状态
  boolean flag2 = getConnectManager().getNetworkInfo(ConnectivityManager.TYPE_MOBILE).isConnected();

  if (!flag1 && !flag2) {
   return false;
  }
  return true;
 }

 

 

4.    将Drawable转化为Bitmap

public static Bitmap drawableToBitmap(Drawable drawable){ 
  int width = drawable.getIntrinsicWidth(); 
        int height = drawable.getIntrinsicHeight(); 
        Bitmap bitmap = Bitmap.createBitmap(width, height, 
                drawable.getOpacity() != PixelFormat.OPAQUE ? Bitmap.Config.ARGB_8888 
                        : Bitmap.Config.RGB_565); 
        Canvas canvas = new Canvas(bitmap); 
        drawable.setBounds(0,0,width,height); 
        drawable.draw(canvas); 
        return bitmap; 
         
    }

 

 

5.    小数点后几位

public static double round(double argVal, int argWs, int argModel) {
   BigDecimal bd = new BigDecimal(argVal);
   bd = bd.setScale(argWs, argModel);
  
   double d = bd.doubleValue();
  
   bd = null;

   return d;

 }

 

 

6.    时间显示格式转换

/**
   * 格式化时间
   * @param format1 原格式 yyyy-MM-dd HH:mm:ss
   * @param format2 转换后的格式 
   * @param dateStr  需要转换的字符串
   * @return
   */
  public static String formatDate(String format1 ,String format2,String dateStr) {
   SimpleDateFormat sdf1 = new SimpleDateFormat(format1);
   SimpleDateFormat sdf2 = new SimpleDateFormat(format2);
   
   try {
    return sdf2.format(sdf1.parse(dateStr));
   } catch (ParseException e) {
    e.printStackTrace();
    return "";
   }
   
  }

7.   开启软键盘

 getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_VISIBLE);

 

8.    获取SD卡总空间和可用空间

  public static String getSDcardStorage() {
String state = Environment.getExternalStorageState();
if(Environment.MEDIA_MOUNTED.equals(state)) {
File sdcardDir = Environment.getExternalStorageDirectory();
   StatFs sf = new StatFs(sdcardDir.getPath());
   long blockSize = sf.getBlockSize();
   long blockCount = sf.getBlockCount();
   long availCount = sf.getAvailableBlocks();
   return "SD卡:" + formatSize(blockSize*blockCount)
    + " 可用空间:" + formatSize(availCount*blockCount);
}
return null;
}

9.    获取系统空间和可用空间

 public static String getSystemStorage() {
File root = Environment.getRootDirectory();  
        StatFs sf = new  StatFs(root.getPath());  
        long  blockSize = sf.getBlockSize();  
        long  blockCount = sf.getBlockCount();  
        long  availCount = sf.getAvailableBlocks();  
        return "总空间:" + formatSize(blockSize*blockCount)
     + " 可用空间:" + formatSize(availCount*blockSize);
    }

 


10.    手机振动,代码片段。

Vibrator vibrator = (Vibrator)getSystemService(Context.VIBRATOR_SERVICE);
vibrator.vibrate(pattern, -1);
需要在AndroidManifest.xml文件添加权限
<uses-permission android:name="android.permission.VIBRATE" />

 

11.    设置开机运行程序

需要在AndroidManifest.xml中添加
<intent-filter>
<!-- 系统启动完成后会调用-->
<action android:name="android.intent.action.BOOT_COMPLETED" />
</intent-filter>

Android 隐藏应用程序图标
把<category android:name="android.intent.category.LAUNCHER" />删除即可

设置透明背景,修改AndroidManifest.xml文件,在对应的Activity里面加上下面的属性:
android:theme="@android:style/Theme.Translucent"
使用系统背景作为应用的背景,在onCreate的时候添加窗口标志:
getWindow().addFlags(WindowManager.LayoutParams.FLAG_SHOW_WALLPAPER);

 

12.     android中打开浏览器

 

Intent viewIntent = new 
    Intent("android.intent.action.VIEW",Uri.parse("http://vaiyanzi.cnblogs.com"));

startActivity(viewIntent);

 

13.    android 拨打电话

 

try {
   Intent intent = new Intent(Intent.ACTION_CALL);
   intent.setData(Uri.parse("tel:+110"));
   startActivity(intent);
} catch (Exception e) {
   Log.e("SampleApp", "Failed to invoke call", e);
}

 

14.   再按一次退出程序代码

 


private long exitTime = 0; 
 
          @Override 
          public boolean onKeyDown(int keyCode, KeyEvent event) { 
                if(keyCode == KeyEvent.KEYCODE_BACK && event.getAction() == KeyEvent.ACTION_DOWN){    
                    if((System.currentTimeMillis()-exitTime) > 2000){   
                     Toast.makeText(getApplicationContext(), "再按一次退出程序", Toast.LENGTH_SHORT).show();                                 
                      exitTime = System.currentTimeMillis();    
                    } else { 
                       finish(); 
                        System.exit(0); 
                  } 
                   return true;    
              } 
               return super.onKeyDown(keyCode, event); 
            }

 

15.    获取屏幕

Display display = getWindowManager().getDefaultDisplay();

   System.out.println("width==" + display.getWidth() + "=====heiht==="      + display.getHeight()); //获取屏幕的分辨率

    DisplayMetrics dm = new DisplayMetrics();     getWindowManager().getDefaultDisplay().getMetrics(dm);     double x = Math.pow(dm.widthPixels/dm.xdpi,2);     double y = Math.pow(dm.heightPixels/dm.ydpi,2);     double screenInches = Math.sqrt(x+y);     System.out.println("screenInches=========="+screenInches); //获取屏幕大小(尺寸)eg:4.3英寸等

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值