Android软件管理器项目学习笔记-04

  1 ##自定义Toast的方法
  2 
  3 1、new出toast,自定义view  Toast toast = new Toast(context);
  4 
  5 2、在view中自定义其样式  LinearLayout toastLayout = new LinearLayout(context);  toastLayout.addView(imageView);  
  6 
  7 3、将自定义view设置给toast,并将其显示出来  toast.setView(toastLayout);  toast.show();    
  8 
  9  
 10 
 11 ##弹出菜单(Dialog)设置方法
 12 
 13 1、给每个view(gv、lv)设置OnItemClick监听器,实现该监听器接口    
 14 
 15    gv.setOnItemClickListener(this);    
 16 
 17    lv.setOnItemClickListener(this);  
 18 
 19 2、复写监听器的onItemClick方法,新建构造器,传入上下文,并进行相应设置  
 20 
 21   AlertDialog.Builder builder = new AlertDialog.Builder(this);  builder.setTitle("选项");  
 22 
 23   builder.setItems(R.array.choice,new DialogInterface.OnClickListener(){...}
 24 
 25 3、构造器的setItems选项中需要资源文件的ID,所以在string.xml中添加如下资源:  
 26 
 27   <array name="choice">        
 28 
 29     <item name="start app">启动</item>        
 30 
 31     <item name="details">详细信息</item>        
 32 
 33     <item name="uninstall">卸载</item>        
 34 
 35      ...    
 36 
 37   </array>  
 38 
 39  
 40 
 41 ##启动程序的方法
 42 
 43 1、获取package名称,获得当前所点击的pkgInfo  
 44 
 45   PackageInfo tempPkgInfo = showPackageInfos.get(position);  
 46 
 47   String pkgName = tempPkgInfo.packageName;
 48 
 49 2、获取默认启动它的activity的类名  //一般来说默认启动的activity放在0的位置  
 50 
 51   ActivityInfo activityInfo = tempPkgInfo.activities[0];
 52 
 53   if(activityInfo==null) {   
 54 
 55     Toast.makeText(MainActivity.this,"没有任何activity", Toast.LENGTH_SHORT);   
 56 
 57     return;  
 58 
 59   }  String activityName = activityInfo.name;   
 60 
 61   !!在获取activity和service的时候,记得加上相应的flag,否则会取不到/报错
 62 
 63 3、启动activity的方法  Intent intent = new Intent();  //使用包名+类名的方式将activity启动起来  
 64 
 65   intent.setComponent(new ComponentName(pkgName,activityName));  
 66 
 67   startActivity(intent); 
 68 
 69  
 70 
 71  
 72 
 73 ##获取每个程序的图标  
 74 
 75   setIcon(pkgInfo.applicationInfo.loadIcon(getPackageManager()));
 76 
 77  
 78 
 79 ##卸载程序只能通过调用系统卸载界面,不能自己通过代码卸载。只需要一个URI实现跳转  
 80 
 81   Uri pkgUri = Uri.parse("package:"+tempPkgInfo.packageName);  
 82 
 83   Intent deleteIntent = new Intent();  
 84 
 85   deleteIntent.setAction(Intent.ACTION_DELETE);  
 86 
 87   deleteIntent.setData(pkgUri);  
 88 
 89   startActivity(deleteIntent);
 90 
 91  
 92 
 93  
 94 
 95 ## 解决BUG:startActivityForResult
 96 
 97 1、 在onResume方法中重新加载packageInfo  
 98 
 99   protected void onResume() {   
100 
101     // TODO Auto-generated method stub   
102 
103     super.onResume();   
104 
105     ...  }
106 
107 2、使用startActivityForResult方法  
108 
109   startActivityForResult(deleteIntent, 0);
110 
111 3、 使用startActivity方法启动时,会将当前Activity压栈、弹出  
112 
113   使用startActivityForResult方法启动时,会调用onActivityResult方法  
114 
115  
116 
117 ##  Android下所有动画效果都被封装为Animation,下面有4种不同的动画效果
118 
119 分类:  
120 
121   1、AlphaAnimation:控制渐变透明的动画效果  
122 
123   2、ScaleAnimation:控制尺寸伸缩的动画效果  
124 
125   3、TranslateAnimation:控制画面平移的动画效果(图形左上角的起始位置)  
126 
127   4、RotateAnimation:控制画面角度变化的动画效果
128 
129 实现方式:  
130   Animation animition = new TranslateAnimation(130, 1, 130, 1);  
131 
132   animition.setDuration(500);//设置单位为毫秒的持续时间  
133 
134   lv.startAnimation(animition);//将动画设置到某一个view上去 
135 
136 特:
137 
138   setInterpolator属性可以对动画的效果进行进一步的设置  
139 
140   animition.setInterpolator(MainActivity.this, android.R.anim.accelerate_decelerate_interpolator);
141 
142  
143 
144  
145 
146 ## AnimationSet,让一个activity实现多个animation  
147 
148   AnimationSet aSet = new AnimationSet(false);  //RotateAnimation           
149 
150   Animation animition = new RotateAnimation(60,0);//起始和终止角度  
151 
152   animition.setDuration(500);//单位是ms  
153 
154   aSet.addAnimation(animition);  
155 
156   animition = new AlphaAnimation(0,1);//起始和终止角度  
157 
158   animition.setDuration(500);
159 
160   aSet.addAnimation(animition);  
161 
162   gv.startAnimation(aSet);  //注意start的是一个animationSet  
163 
164  
165 
166 ##  AnimationSet aSet = new AnimationSet(false);  //false表示是否使用set本身的插入器
167 
168  
169 
170 # #   通过资源文件实现动画效果
171 
172     Animation animation = AnimationUtils.loadAnimation(MainActivity.this, R.anim.set1);
173      gv.startAnimation(animation);
174 
175  
176 
177 ##  LayoutAnimation是对每一个控件设置动作
178 
179  
180 
181  
182 
183  

 

posted @ 2014-02-17 16:05  静静静流  阅读(312)  评论(0编辑  收藏  举报