Android软件管理器项目学习笔记-04
##自定义Toast的方法
1、new出toast,自定义view Toast toast = new Toast(context);
2、在view中自定义其样式 LinearLayout toastLayout = new LinearLayout(context); toastLayout.addView(imageView);
3、将自定义view设置给toast,并将其显示出来 toast.setView(toastLayout); toast.show();
##弹出菜单(Dialog)设置方法
1、给每个view(gv、lv)设置OnItemClick监听器,实现该监听器接口
gv.setOnItemClickListener(this);
lv.setOnItemClickListener(this);
2、复写监听器的onItemClick方法,新建构造器,传入上下文,并进行相应设置
AlertDialog.Builder builder = new AlertDialog.Builder(this); builder.setTitle("选项");
builder.setItems(R.array.choice,new DialogInterface.OnClickListener(){...}
3、构造器的setItems选项中需要资源文件的ID,所以在string.xml中添加如下资源:
<array name="choice">
<item name="start app">启动</item>
<item name="details">详细信息</item>
<item name="uninstall">卸载</item>
...
</array>
##启动程序的方法
1、获取package名称,获得当前所点击的pkgInfo
PackageInfo tempPkgInfo = showPackageInfos.get(position);
String pkgName = tempPkgInfo.packageName;
2、获取默认启动它的activity的类名 //一般来说默认启动的activity放在0的位置
ActivityInfo activityInfo = tempPkgInfo.activities[0];
if(activityInfo==null) {
Toast.makeText(MainActivity.this,"没有任何activity", Toast.LENGTH_SHORT);
return;
} String activityName = activityInfo.name;
!!在获取activity和service的时候,记得加上相应的flag,否则会取不到/报错
3、启动activity的方法 Intent intent = new Intent(); //使用包名+类名的方式将activity启动起来
intent.setComponent(new ComponentName(pkgName,activityName));
startActivity(intent);
##获取每个程序的图标
setIcon(pkgInfo.applicationInfo.loadIcon(getPackageManager()));
##卸载程序只能通过调用系统卸载界面,不能自己通过代码卸载。只需要一个URI实现跳转
Uri pkgUri = Uri.parse("package:"+tempPkgInfo.packageName);
Intent deleteIntent = new Intent();
deleteIntent.setAction(Intent.ACTION_DELETE);
deleteIntent.setData(pkgUri);
startActivity(deleteIntent);
## 解决BUG:startActivityForResult
1、 在onResume方法中重新加载packageInfo
protected void onResume() {
// TODO Auto-generated method stub
super.onResume();
... }
2、使用startActivityForResult方法
startActivityForResult(deleteIntent, 0);
3、 使用startActivity方法启动时,会将当前Activity压栈、弹出
使用startActivityForResult方法启动时,会调用onActivityResult方法
## Android下所有动画效果都被封装为Animation,下面有4种不同的动画效果
分类:
1、AlphaAnimation:控制渐变透明的动画效果
2、ScaleAnimation:控制尺寸伸缩的动画效果
3、TranslateAnimation:控制画面平移的动画效果(图形左上角的起始位置)
4、RotateAnimation:控制画面角度变化的动画效果
实现方式:
Animation animition = new TranslateAnimation(130, 1, 130,
1);
animition.setDuration(500);//设置单位为毫秒的持续时间
lv.startAnimation(animition);//将动画设置到某一个view上去
特:
setInterpolator属性可以对动画的效果进行进一步的设置
animition.setInterpolator(MainActivity.this, android.R.anim.accelerate_decelerate_interpolator);
## AnimationSet,让一个activity实现多个animation
AnimationSet aSet = new AnimationSet(false); //RotateAnimation
Animation animition = new RotateAnimation(60,0);//起始和终止角度
animition.setDuration(500);//单位是ms
aSet.addAnimation(animition);
animition = new AlphaAnimation(0,1);//起始和终止角度
animition.setDuration(500);
aSet.addAnimation(animition);
gv.startAnimation(aSet); //注意start的是一个animationSet
## AnimationSet aSet = new AnimationSet(false); //false表示是否使用set本身的插入器
# # 通过资源文件实现动画效果
Animation
animation = AnimationUtils.loadAnimation(MainActivity.this,
R.anim.set1);
gv.startAnimation(animation);
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。