zoukankan      html  css  js  c++  java
  • Android 开发有用代码积累

      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-permission android: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 代表横屏) 

  • 相关阅读:
    《JS权威指南学习总结--3.8类型转换》
    php基础-1
    django的url分配和url捕获参数
    Django项目的创建和设计模式
    1.Tensorflow的基本概念:
    linux下安装pycharm
    url参数和字典的相互转化
    MySQL数据库一
    利用伪装文件夹实现对文件的加密-当然如果你懂,这是很好破解的,只是障眼法而已
    数组有N+M个数字, 数字的范围为1 ... N, 打印重复的元素, 要求O(M + N), 不可以用额外的空间
  • 原文地址:https://www.cnblogs.com/zhuyp1015/p/4343111.html
Copyright © 2011-2022 走看看