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 应用的安装和卸载

1.普通的应用安装和卸载 /* 安装apk */ public static void installApk(Context context, String fileName) { I...
  • qwe380948730
  • qwe380948730
  • 2017年02月07日 14:33
  • 443

android安装和卸载程序

在Android安装卸载程序的源码中我们知道:
  • fenghome
  • fenghome
  • 2010年06月16日 15:38
  • 7035

Android APK安装与卸载机制

本文主要介绍Android系统如何实现APK安装、卸载、更新等操作。主要内容包括以下内容: 安装和卸载APK的方法有哪些,每种方法实现的原理是什么?APK安装和卸载过程中,系统数据发生了哪些...
  • zhangxu0922
  • zhangxu0922
  • 2016年07月18日 12:49
  • 4209

Android应用卸载广播监听

1.今天在项目中遇到一个小问题,感觉挺好玩的,记录下: 在进行应用卸载弹窗时,通过接收Intent.ACTION_PACKAGE_REMOVED 广播,进行判断处理,即可完成应用的卸载监听,可是在实...
  • zxcofuestc
  • zxcofuestc
  • 2017年05月22日 17:05
  • 295

Android程序的安装、卸载和更新

安装程序的方法: 1、通过Intent机制,调出系统安装应用,重新安装应用的话,会保留原应用的数据。 String fileName = Environment.get...
  • MYBOYER
  • MYBOYER
  • 2013年05月29日 17:09
  • 963

Android之——实现应用卸载功能

不多说,不废话,直接上代码,大家一看都明白 //卸载应用程序 public void unstallApp(){ Intent uninstall_intent = new Intent(); u...
  • l1028386804
  • l1028386804
  • 2015年07月31日 20:11
  • 5436

Android之监听应用的安装与卸载的广播

import android.content.BroadcastReceiver; import android.content.Context; import android.content...
  • u011068702
  • u011068702
  • 2016年09月12日 17:07
  • 1424

Android 卸载应用且获取应用的状态更新应用列表

Android 卸载应用比较简单: packageName 为你和 Uri uri = Uri.parse("package:"+packageName);         Intent i...
  • jia4525036
  • jia4525036
  • 2014年05月09日 17:23
  • 2018

Android自动升级与监听卸载笔记

自动升级笔记
  • u013072976
  • u013072976
  • 2016年06月27日 19:52
  • 601

Android开发,卸载应用的时候删除文件或文件夹

Android与IOS一个比较大的不同就是文件夹部分,IOS在卸载应用的时候会同时删除应用所创建的所有文件及文件夹,Android不会。 以下是执行这个操作的方法。 首先写一个广播接收器即Broadc...
  • Stanny_Bing
  • Stanny_Bing
  • 2016年03月04日 16:17
  • 4652
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Android项目-PopupWndow与应用的启动与卸载
举报原因:
原因补充:

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