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

 

posted @ 2015-03-16 22:22  KingsLanding  阅读(663)  评论(0编辑  收藏  举报