Android开发需求变化快,开发周期要求尽量短,接下来一系列文章从实际使用出发总结一些常用的代码片段,便于查找,也为后来人提供一份参考。

1.获取Manifest的基本信息(升级页面和软件关于页面一般会使用到)


Context mContext = XXXApplication.getInstance().getApplicationContext(); //获取Application的Context ,当然也可以获取当前的Activity的Context, Application一般是单例packageName = mContext.getPackageName(); //获取包名,也就是manifest中的package选项的值PackageInfo info = mContext.getPackageManager().getPackageInfo( mContext.getPackageName(), 0); //

String versionName = info.versionName;
int versionCode = info.versionCode;

2.获取手机屏幕参数(对于屏幕适配很重要,毕竟Android手机的屏幕种类太多了)


Resources resources = XXXApplication.getInstance().getResources();float scale = resources.getDisplayMetrics().density;//屏幕密度因子,用于在px与dp之间转化float scaledDensity = resources.getDisplayMetrics().scaledDensity;float disPlayWidth = resources.getDisplayMetrics().widthPixels;float disPlayHeight = resources.getDisplayMetrics().heightPixels;

  public static int dip2px(float dp) {
    return (int) (dp * scale + 0.5f);
  }

  public static int px2dip(float px) {
  return (int) (px / scale + 0.5f);
  }

  后面专门用篇文章来介绍一下我对不同屏幕适配的心得,今天就先介绍上面的代码。

3. 隐藏软键盘

 
InputMethodManager imm = (InputMethodManager)getSystemService(INPUT_METHOD_SERVICE); imm.hideSoftInputFromWindow(editText.getWindowToken(), 0);


//在含有EditText的页面,有可能一进入该Activity软键盘就弹出来,可以通过以下方法来禁止

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

  

4. 安装APK(比如说下载了升级软件的时候,需要安装替换旧版)


File apkfile = new File(apkFilePath); if (!apkfile.exists()) { return;} Intent i = new Intent(Intent.ACTION_VIEW); i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); i.setDataAndType(Uri.parse("file://" + apkfile.toString()), "application/vnd.android.package-archive"); mContext.startActivity(i);

5. 设置TextView的文字大小

  TextView通过getTextSize()返回的值是px,setTextSize()却是sp,所以一般不能直接用getTextSize()获取的值来设置。可以指定setTextSize()的单位:

  TypedValue.COMPLEX_UNIT_PX : PX

  TypedValue.COMPLEX_UNIT_SP : SP

  TypedValue.COMPLEX_UNIT_DIP : DIP

  可以这样使用:

 mTextView.setTextSize(TypedValue.COMPLEX_UNIT_PX, getResources().getDimension(R.dimen.text_size)); //使用getDimension 是为了屏幕适配,这里先点到为止

  

6. 手机震动功能

import android.app.Activity;  import android.app.Service;  import android.os.Vibrator;    public class Myvibrator {       public static void Vibrate(final Activity activity, long milliseconds) {          Vibrator vib = (Vibrator) activity.getSystemService(Service.VIBRATOR_SERVICE);          vib.vibrate(milliseconds);      }       public static void Vibrate(final Activity activity, long[] pattern,boolean isRepeat) {           Vibrator vib = (Vibrator) activity.getSystemService(Service.VIBRATOR_SERVICE);           vib.vibrate(pattern, isRepeat ? 1 : -1);       }   }  

  在manifest文件中需要增加权限:<uses-permissionandroid:name="android.permission.VIBRATE"/> 。通过上面操作,我们可以使用Myvibrator所定义的函数了。两个Vibrate函数的参数简单介绍如下:

  final Activity activity :调用该方法的Activity实例
  long milliseconds :震动的时长,单位是毫秒

  long[] pattern :自定义震动模式 。数组中数字的含义依次是[静止时长,震动时长,静止时长,震动时长。。。]时长的单位是毫秒

  boolean isRepeat : 是否反复震动,如果是true,反复震动,如果是false,只震动一次

7. 软键盘弹出不把整个布局顶起来

  在manifest文件对应的activity中设置:android:windowSoftInputMode="adjustPan" 属性

8. 设置Activity为横屏或者竖屏

  在manifest文件对应的activity中设置:android:screenOrientation="portrait" (竖屏,landscape 代表横屏)

更多相关文章

  1. android 物理键盘布局
  2. 如何通过Tesseract开源OCR引擎创建Android(安卓)OCR应用
  3. Android添加(创建)、删除及判断是否存在桌面快捷方式的方法
  4. android获取自定义控件位置坐标,屏幕尺寸,标题栏,状态栏高度
  5. Android(安卓)FrameWork——PackageManager框架
  6. Android原生调用mui里面的js如何实现
  7. wakelock的使用
  8. Android之xml解析和json解析
  9. Android可平移缩放旋转的ImageView的实现

随机推荐

  1. Android(安卓)开机优化
  2. Android 笔记 01
  3. Android 系统用户态启动过程
  4. Android Relative Layout 安卓相对布局详
  5. JDK与adb/android环境变量配置完整教程
  6. android——退出程序的功能,关闭所有本程
  7. 重新审视 Android
  8. android语音识别接科大讯飞sdk
  9. Android异步消息处理机制详解及源码分析
  10. Android五层架构