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
__________________________________________________________
shoobie do lang lang ^^