Android项目-PopupWndow与应用的启动与卸载
2015-11-19 20:31
555 查看
Android项目-PopupWndow与应用的启动与卸载
PopupWindow
我们可以使用一个PopupWindow来显示任何View,可以理解为,一个PopupWindow是一个浮在当前activity上的容器。下面代码,简单的创建了一个PopupWndow
//创建一个只带窗体的PopupWindow, 当这个PopupWindow显示在Activity上时,它所显示的内容都由contentView提供, //还是那句话,他就是一个提供界面显示的容器 popupwindow = new PopupWindow(contentView, ActionBar.LayoutParams.WRAP_CONTENT, ActionBar.LayoutParams.WRAP_CONTENT); //这个是要让PopupWindow显示的UI界面 View contentView = View.inflate(getApplicationContext(),R.layout.popup_item, null); //将PopupWndow显示在界面的指定位置: 显示在(parent:父容器)的坐标系下的 x = 60, y=60处 popupwindow.showAtLocation(parent, Gravity.LEFT+ Gravity.TOP, 60, 60);
给PopupWndow的View添加动画
要想使PopupWndow的View显示动画,前提条件是PopupWindow的窗体必须有背景,否则View是不可以播放动画的。继续上面的代码:
popupwindow.setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT)); //透明的背景 //缩放动画 ScaleAnimation sa = new ScaleAnimation(0.5f, 1.0f, 0.5f,1.0f, Animation.RELATIVE_TO_SELF, 0,Animation.RELATIVE_TO_SELF, 0.5f); sa.setDuration(200); //透明动画 AlphaAnimation aa = new AlphaAnimation(0.5f, 1.0f); aa.setDuration(200); AnimationSet set = new AnimationSet(false); set.addAnimation(aa); set.addAnimation(sa); contentView.startAnimation(set);
PopupWindow显示完之后,必须要dismiss: popupwindow.dismiss(), 不然会留在界面上
应用的启动与卸载
启动
private void startApplication() { // 打开这个应用程序的入口activity。 PackageManager pm = getPackageManager(); Intent intent = pm.getLaunchIntentForPackage(AppInfo.getPackname()); if (intent != null) { startActivity(intent); } else { Toast.makeText(this, "该应用没有启动界面", Toast.LENGTH_SHORT).show(); } }
卸载
private void uninstallApplication() { if (AppInfo.isUserApp()) { //卸载用户程序 Intent intent = new Intent(); intent.setAction(Intent.ACTION_DELETE); intent.setData(Uri.parse("package:" + AppInfo.getPackname())); startActivity(intent); }else{ //系统应用 ,root权限 利用linux命令删除文件。 if(!RootTools.isRootAvailable()){ Toast.makeText(this, "卸载系统应用,必须要root权限", Toast.LENGTH_SHORT).show(); return ; } try { if(!RootTools.isAccessGiven()){ //判断本应用,是否拥有root权限 Toast.makeText(this, "本应用无root权限", Toast.LENGTH_SHORT).show(); return ; } RootTools.sendShell("mount -o remount ,rw /system", 3000); RootTools.sendShell("rm -r "+AppInfo.getApkpath(), 30000); } catch (Exception e) { e.printStackTrace(); } } }
相关文章推荐
- 使用C++实现JNI接口需要注意的事项
- Android IPC进程间通讯机制
- Android Manifest 用法
- [转载]Activity中ConfigChanges属性的用法
- Android之获取手机上的图片和视频缩略图thumbnails
- Android之使用Http协议实现文件上传功能
- Android学习笔记(二九):嵌入浏览器
- android string.xml文件中的整型和string型代替
- i-jetty环境搭配与编译
- android之定时器AlarmManager
- android wifi 无线调试
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- android 代码实现控件之间的间距
- android FragmentPagerAdapter的“标准”配置
- Android"解决"onTouch和onClick的冲突问题
- android:installLocation简析
- android searchView的关闭事件
- SourceProvider.getJniDirectories