Android项目-PopupWndow与应用的启动与卸载

原创 2015年11月19日 20:31:22

Android项目-PopupWndow与应用的启动与卸载

我们可以使用一个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 = 60y=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();
            }

        }
    }
版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

Android项目实战--手机卫士22--卸载和分享功能的完成以及用户及系统应用的切换

昨天,我们已经把运行这个功能给做出来啦,那么今天我们就把卸载和分享这两个功能给完成一下,当然还有一个用户应用与全部应用之间的切换 其实这个卸载的功能是不难完成的,主要就是调用一下系统自己的卸载的那个a...

Android中启动,分享,卸载应用程序

一、启动一个程序 private void startApp() { // 创建PackageManager对象 PackageManager pm = getP...

Android - 安装及卸载应用,启动应用程序,分享,详细信息,设备进程信息获取,获取进程占用RAM,清理进程

Android - 安装及卸载应用,启动应用程序,分享,详细信息,设备进程信息获取,获取进程占用RAM,清理进程...

Android中实现静态的默认安装和卸载应用

最近好长时间都没有写blog了,主要是因为最近工作上的事以及下载Android源码的事耽误的(下载源码这件事会在后续的blog中写道,这个真的很有意义呀~~),那么今天来写点什么呢?主要的灵感来自于早...

Android系统应用卸载demo

  • 2014年09月22日 15:21
  • 2.04MB
  • 下载

android 系统应用卸载(需root)

  • 2013年09月30日 11:27
  • 256KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Android项目-PopupWndow与应用的启动与卸载
举报原因:
原因补充:

(最多只允许输入30个字)