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  

转载于:https://www.cnblogs.com/annaivsu/p/3552738.html

Android软件管理器项目学习笔记-04相关推荐

  1. 安卓Android软件管理器

    要求说明书: 1.设置一个默认的布局,命名为show_app_grid.xml 整体是一个RelativeLayout设置背景色为#313849 然后放置三个Layout组成 1. LinearLay ...

  2. Android平台手机UI应用开发——软件管理器

    第一次写博客,与大家分享源代码,博客很多地方不知道怎么设计,望见谅. 希望大家多多支持,雅林和大家一起学习Android,共同进步. 今天我们要做的这个软件管理器,主要目的是为了学习Android平台 ...

  3. TheBeerHouse 网站项目学习笔记(5)---架构设计

    前述讨论:    TheBeerHouse 网站项目学习笔记(1)----换肤技术                     TheBeerHouse 网站项目学习笔记(2)----个性化管理      ...

  4. 尚医通项目学习笔记Part1

    尚医通项目学习笔记 前言 一.目前学习进度 二.学习记录 1.项目简介 1.1 项目所会用到的技术栈 1.2 业务流程 2.项目学习笔记 2.1MyBatis-Plus相关 2.2搭建项目框架 2.3 ...

  5. 元数据管理工具Atlas学习笔记之集成

    文章目录 背景 环境 Atlas安装 solr Atlas Atlas启动 启动Hadoop.ZooKeeper.HBase.Kafka.Hive和MySQL Hadoop 启动ZooKeeper 启 ...

  6. 解放双手,推荐一款 GitHub 星标 8.2k+的命令行软件管理器

    小二是公司新来的实习生,之前面试的过程中对答如流,所以我非常看好他.第一天,我给他了一台新电脑,要他先在本地搭建个 Java 开发环境. 二话不说,他就开始马不停蹄地行动了.真没想到,他竟然是通过命令 ...

  7. spring boot 前后端分离项目(商城项目)学习笔记

    spring boot 前后端分离项目(商城项目)学习笔记 目录 spring boot 前后端分离项目(商城项目)学习笔记 后端配置 springboot项目 pom.xml文件 maven 配置文 ...

  8. Android布局管理器-使用LinearLayout实现简单的登录窗口布局

    场景 Android布局管理器-从实例入手学习相对布局管理器的使用: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/1038389 ...

  9. 取得 Git 仓库 —— Git 学习笔记 04

    取得 Git 仓库 -- Git 学习笔记 04 我认为, Git 的学习分为两大块:一是工作区.索引.本地版本库之间的交互:二是本地版本库和远程版本库之间的交互.第一块是基础,第二块是难点. 下面, ...

最新文章

  1. 【硬核解说】一口气讲明白Angular的5种路由守卫RouteGuard是嘛玩意儿
  2. 2020公文格式模板及范文_四六级考试答题顺序推荐 2020四级作文预测 四级作文范文模板...
  3. vs中没有fstream_vs++2010 编译说找不到 fstream.h 解决方法
  4. 装饰模式(Decorator)简介
  5. n个数分为m堆有多少种分法(青岛理工邀请赛)动态规划
  6. Mybatis的缓存机制Cache
  7. vue3.0 axios 引入及使用
  8. rufus 制作U盘启动工具
  9. 使用netsh interface ip set 命令实现快速切换IP地址及DNS地址
  10. ubuntu 20.04 | 美化主题、图标、光标、壁纸、登录背景
  11. pdf转图片在线转换免费
  12. 阿里云、百度云、腾讯云、AWS、微软Azure、华为云、金山云等云服务商产品的差异是啥?
  13. BDD100K:大规模、多样化的驾驶视频数据集
  14. proxifier 出现错误代码10060处理
  15. io.reactivex.exceptions.UndeliverableException
  16. 智慧税务+数据可视化:企业财务管理告别难题
  17. 计算机专业团队研修方案,工作室研修方案
  18. 2020年蓝桥杯模拟赛解题报告(Python真香)
  19. 【墨水屏】1.54寸墨水屏调试记录
  20. java毕业设计房屋租赁系统mybatis+源码+调试部署+系统+数据库+lw

热门文章

  1. 花生日记怎么做代理?花生日记官方邀请码AZR9NNO
  2. Delphi 的TZipFile压缩文件自定义(去掉盘符)
  3. 专业防霾口罩走红 专家:普通口罩无法防细菌
  4. bzoj1001/BJOI2006 灰太狼抓到的兔子
  5. c++实现svg格式转换成png_8款超好用的SVG编辑工具用起来!
  6. 中国省市 插入sql语句
  7. 【专栏】国内外物联网平台初探(篇四:京东微联)
  8. DC/DC内置升压芯片-FP5217MR-G1-60W大功率升压芯片支持26V输出
  9. 最短路径 Dijkstra算法
  10. 不断进阶:从“学渣”到P10,一位阿里工程师的逆袭故事