407827531 发表于 2013-1-15 02:41:10

Android学习笔记

查看可用虚拟装置AVD
Android list targets
创建AVD
Android create avd –n 1.5 –t 2参数说明:-n 用户设定的装置名称-t AVD ID


启动模拟器命令
Emulator –avd ;


可定制的界面
Emulator –avd 1.5 –skin HVGA-L   (480*320 ,水平显示)Emulator –avd 1.5 –skin HVGA-P   (320*480 ,垂直显示,仿真器默认模式)Emulator –avd 1.5 –skin QVGA-L   (320*240 ,水平显示)Emulator –avd 1.5 –skin QVGA-P   (240*320 ,垂直显示)


移除与删除AVD硬件装置
Android move avd –n android_1.5 –r 1.5 (android_1.5 更名为1.5)Android delete avd –n android 1.5 (删除android_1.5 AVD 装置)


设置为中文界面
回到android系统的主界面,然后依序单击手机的”Menu”-->”Setting选项”-->”Local & text”-->”Select local”,选择语言。


添加内存卡
Mksdcard 1024M sdcard.img添加1G 名称为sdcard.img的SD卡Emulator –avd and15 –sdcard sdcard.img


弹出对话框
private void openOptionsDialog(){    new AlertDialog.Builder(this).setTitle(R.string.app_name)    .setMessage(R.string.hello)    .setPositiveButton(R.string.string_ok,    new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {// TODO Auto-generated method stub}}).setNegativeButton(R.string.string_cancel,new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {// TODO Auto-generated method stub}}).show();}


弹出提示界面
Toast.makeText(Bmi.this,”BMI 计数器”,Toast.LENGHT_SHORT).show();


快捷键添加对应包
Ctrl+shift+O


利用函数取得资源文件中的字符串
Getstring(R.string.strName);


打开对应的程序
Uri uri = Uri.parse(“www.baidu.com”);Intent intent = new Intent(Intent.ACTION_VIEW,uri);startActivity(intent);


调试输出
Log.v(“TAG”,”STRING”);   // 详细信息Log.d(“TAG”,”STRING”);   // 调试信息Log.i“TAG”,”STRING”);   //通知信息Log.w(“TAG”,”STRING”);//警告信息Log.e(“TAG”,”STRING”);//错误信息


数据存储
声明一个优先级设置(SharedPreferences)类型“settings”,并使用getSharedPreferences函数,来寻找系统中有无符合以“BMI_PREF”字符串作为文件名的优先级设置文件。如果有符合条件的优先级设置文档存在的话,就将这个优先级设置指定使用作为“settings”作为代号来操作。如果没有的话,“getSharedPreferences”函数会返回0,给settings.可以通过“getXXX”函数从优先级设置(SharePreferences)读取不同类型的内容,例如本例中使用”getString”来读取文字类型的信息。当“PREF_HEIGHT”优先级设置参数存在时,字符串“pref_height”就会得到优先级设置参数的内容。如果不存在“PREF_HEIGHT”这个优先级设置参数时,字符串“pref_height”则会得到一个空字符串。
代码说明:
“PREF” 优先级设置文件的名称代号。 “PREF_HEIGHT”优先级设置文件里的存储数据项名称代号。restorePrefs函数添加在重写的OnCreate事件中。public static final String PREF = "BMI_PREF";public static final String PREF_HEIGHT = "BMI_Height";EditText etHeight;EditText etWeight;private void restorePrefs(){SharedPreferences settings = getSharedPreferences(PREF,0);String pref_height = settings.getString(PREF_HEIGHT, "");if(! "".equals(pref_height)){etHeight.setText(pref_height);etWeight.requestFocus();}}settings中拥有3个函数:“edit”,“putString”和“commit”;edit用于编辑优先级设置。putString用于告诉优先级设置的内容。commit用于编辑结束后更改优先级的设置并将其保存。@Overrideprotected void onPause() {// TODO Auto-generated method stubsuper.onPause();SharedPreferences settings = getSharedPreferences(PREF,0);settings.edit().putString(PREF_HEIGHT, etHeight.getText().toString()).commit();}


获取资源文件
Resources res = getResources();//获取“资源”对象Configuration conf = res.getConfiguration();//获取res的相关配置对象Conf.locale = Locale.SIMPLEFIED_CHINESE;//改变当前程序所使用的语言DisplayMetrices dm = res.getDisplayMetrics();//Res.updateConfiguration(conf,dm);//将修改反映到屏幕上


配置文件指定屏幕方向
只要在“AndroidManifest.xml”的“Activity”标签中加上
Android:screenOrientation = “portrait”
备注:portrait 直式显示
      Landscape 横式显示
      Sensor   自动变换
也可以在代码中指定屏幕方向
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANSCAPE);
备注:SCREEN_ORIENTATION_LANSCAPE 横式
    SCREEN_ORIENTATION_PORTRAIT 直式


无标题全屏显示
this.requestWindowFeature(Window.FEATURE_NO_TITLE);   getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);   


通过Id获得图片bmp
Bitmap mBitmap = BitmapFactory.decodeResource(getResources(),   R.drawable.pic1); int pic_width = mBitmap.width(); int pic_height = mBitmap.height();

透明度设置
      颜色总共为32位;0x00ffffff,开始两位代表透明度;
      00代表完全透明;ff代表完全不透明;

弹出圆形进度条对话框
@Override protected Dialog onCreateDialog(int id) {      switch (id) {            case DIALOG_LOADING: {                ProgressDialog dialog = new ProgressDialog(this);                dialog.setMessage(getResources().getString(R.string.data_loading));                dialog.setIndeterminate(true);                dialog.setCancelable(true);                return dialog;            }      }      return null;}

消息分发函数的调用方法:
class LoginHander extends Handler {private static final int MSG_DIALOG_LOADING = 1;private static final int MSG_DIALOG_CANCEL = 2;private static final int MSG_SHOW_TOAST = 3;public void actionShowProgressDlg(int id){android.os.Message msg = new android.os.Message();      msg.what = MSG_DIALOG_LOADING;      msg.arg1 = id;      sendMessage(msg);}public void actionHideProgressDlg(int id){android.os.Message msg = new android.os.Message();      msg.what = MSG_DIALOG_CANCEL;      msg.arg1 = id;      sendMessage(msg);}public void actionShowToast(final String str) {android.os.Message msg = new android.os.Message();      msg.what = MSG_SHOW_TOAST;      msg.obj = str;      sendMessage(msg);}@Overridepublic void handleMessage(Message msg) {switch (msg.what) {case MSG_DIALOG_LOADING:showDialog(msg.arg1);break;case MSG_DIALOG_CANCEL:dismissDialog(msg.arg1);break;case MSG_SHOW_TOAST:Toast.makeText(Login.this, (String)msg.obj, Toast.LENGTH_LONG).show();break;default: super.handleMessage(msg);break;}}}
页: [1]
查看完整版本: Android学习笔记