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);

  

时间: 2024-12-28 13:18:05

Android 开发有用代码积累的相关文章

ANDROID开发之问题积累及解决方案(不断更新)

一.activity跳转及传值 当进行activity之间的跳转时我们会遇到这样的问题.首先熟悉下activity之间跳转.Activity跳转与传值,主要是通过Intent类来连接多个Activity,以及传递数据.几种跳转方式可参照Android之Activity的几种跳转方式和Activity的跳转与传值,下面来说说开发时遇到的错误. 1.Internal Server error 在开发工程时,有6个activity,又新增一个activity,这个activity有listview,目

Android开发有用的三方网站

聚合数据-免费数据调用 https://www.juhe.cn/ 有赞- 免费的微商城 http://youzan.com/ 秀米微信图文编辑器 http://xiumi.us/ 禅道项目管理软件 http://www.zentao.net/ 安卓开发工具平台 http://www.androiddevtools.cn/ 友盟_开发者服务平台 http://www.umeng.com/ Bmob移动后端云服务平台 http://www.bmob.cn/ 初页- 优质H5微信海报 手机应用 兔展-

Android开发常用代码片段

拨打电话 public static void call(Context context, String phoneNumber) { context.startActivity( new Intent(Intent.ACTION_CALL, Uri.parse( "tel:" + phoneNumber))); } 跳转至拨号界面 public static void callDial(Context context, String phoneNumber) { context.st

Android开发模板代码(一)——简单打开图库选择照片

首先,先贴上样本代码 //检查权限 public void checkPermission() { if (ContextCompat.checkSelfPermission(this, Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) { ActivityCompat.requestPermissions(this, new String[]{Manifest.permission

Android开发模版代码(4)——状态栏设置

下面的代码是基于开源项目SystemBarTint,我们需要添加其依赖 compile 'com.readystatesoftware.systembartint:systembartint:1.0.3' 设置状态栏白色 1. 设置主题theme 在AndroidManifest文件中,设置theme 按住Ctrl,点开那个theme,修改theme 2. 设置xml文件 之后在xml文件中的根节点,添加属性android:fitsSystemWindows="true",同时,把背景

Android开发之代码混淆

1.启动混淆开关 在工程目录下的project.properties文件,有名为proguard.config标签,默认为关闭状态,打开即可. 2.进行混淆配置 在工程目录下的proguard-project.txt文件进行具体的混淆配置,配置完后右击工程,选择export导出apk包,该apk包就是混淆包了. 例:包名为com.test -dontwarn org.* -keepattributes EnclosingMethod, InnerClasses -keepattributes *

Delphi XE8中Android开发有用的资源!

一,FireMonkey Component Library在XE8帮助(topics.chm)中的位置:FireMonkey Component Library,展示了FireMonkey控件在VCL类库中的各种关系,对于我们理解FireMonkey类库有非常大的帮助. 二,Delphi XE8中Android类库源代码位置:C:\Program Files (x86)\Embarcadero\Studio\16.0\source\rtl\android ,C:\Program Files (

ANDROID开发之问题积累及解决方案(二)

错误:“Binary XML file line # : Error inflating class” 原因:此异常是布局文件中有错引起的,那么返回到布局文件中看看. <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_wid

Android开发有用技巧:推断当前系统语言版本号

Locale locale = getResources().getConfiguration().locale; String language = locale.getLanguage(); 以上代码能够获取到当前系统的语言码,中文的语言码为ch,英文的语言码为en,完整的语言码例如以下: bn_BD孟加拉语(孟加拉)  bo_CN 博多语(中国)  bo_IN 博多语(印度)  ce_PH 塞布安诺语(菲律宾)  de_LI 德语(列支敦士登)  fa_AF 波斯语(阿富汗)  fa_IR