Android软件管理器项目学习笔记-04
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相关推荐
- 安卓Android软件管理器
要求说明书: 1.设置一个默认的布局,命名为show_app_grid.xml 整体是一个RelativeLayout设置背景色为#313849 然后放置三个Layout组成 1. LinearLay ...
- Android平台手机UI应用开发——软件管理器
第一次写博客,与大家分享源代码,博客很多地方不知道怎么设计,望见谅. 希望大家多多支持,雅林和大家一起学习Android,共同进步. 今天我们要做的这个软件管理器,主要目的是为了学习Android平台 ...
- TheBeerHouse 网站项目学习笔记(5)---架构设计
前述讨论: TheBeerHouse 网站项目学习笔记(1)----换肤技术 TheBeerHouse 网站项目学习笔记(2)----个性化管理 ...
- 尚医通项目学习笔记Part1
尚医通项目学习笔记 前言 一.目前学习进度 二.学习记录 1.项目简介 1.1 项目所会用到的技术栈 1.2 业务流程 2.项目学习笔记 2.1MyBatis-Plus相关 2.2搭建项目框架 2.3 ...
- 元数据管理工具Atlas学习笔记之集成
文章目录 背景 环境 Atlas安装 solr Atlas Atlas启动 启动Hadoop.ZooKeeper.HBase.Kafka.Hive和MySQL Hadoop 启动ZooKeeper 启 ...
- 解放双手,推荐一款 GitHub 星标 8.2k+的命令行软件管理器
小二是公司新来的实习生,之前面试的过程中对答如流,所以我非常看好他.第一天,我给他了一台新电脑,要他先在本地搭建个 Java 开发环境. 二话不说,他就开始马不停蹄地行动了.真没想到,他竟然是通过命令 ...
- spring boot 前后端分离项目(商城项目)学习笔记
spring boot 前后端分离项目(商城项目)学习笔记 目录 spring boot 前后端分离项目(商城项目)学习笔记 后端配置 springboot项目 pom.xml文件 maven 配置文 ...
- Android布局管理器-使用LinearLayout实现简单的登录窗口布局
场景 Android布局管理器-从实例入手学习相对布局管理器的使用: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/1038389 ...
- 取得 Git 仓库 —— Git 学习笔记 04
取得 Git 仓库 -- Git 学习笔记 04 我认为, Git 的学习分为两大块:一是工作区.索引.本地版本库之间的交互:二是本地版本库和远程版本库之间的交互.第一块是基础,第二块是难点. 下面, ...
最新文章
- 【硬核解说】一口气讲明白Angular的5种路由守卫RouteGuard是嘛玩意儿
- 2020公文格式模板及范文_四六级考试答题顺序推荐 2020四级作文预测 四级作文范文模板...
- vs中没有fstream_vs++2010 编译说找不到 fstream.h 解决方法
- 装饰模式(Decorator)简介
- n个数分为m堆有多少种分法(青岛理工邀请赛)动态规划
- Mybatis的缓存机制Cache
- vue3.0 axios 引入及使用
- rufus 制作U盘启动工具
- 使用netsh interface ip set 命令实现快速切换IP地址及DNS地址
- ubuntu 20.04 | 美化主题、图标、光标、壁纸、登录背景
- pdf转图片在线转换免费
- 阿里云、百度云、腾讯云、AWS、微软Azure、华为云、金山云等云服务商产品的差异是啥?
- BDD100K:大规模、多样化的驾驶视频数据集
- proxifier 出现错误代码10060处理
- io.reactivex.exceptions.UndeliverableException
- 智慧税务+数据可视化:企业财务管理告别难题
- 计算机专业团队研修方案,工作室研修方案
- 2020年蓝桥杯模拟赛解题报告(Python真香)
- 【墨水屏】1.54寸墨水屏调试记录
- java毕业设计房屋租赁系统mybatis+源码+调试部署+系统+数据库+lw
热门文章
- 花生日记怎么做代理?花生日记官方邀请码AZR9NNO
- Delphi 的TZipFile压缩文件自定义(去掉盘符)
- 专业防霾口罩走红 专家:普通口罩无法防细菌
- bzoj1001/BJOI2006 灰太狼抓到的兔子
- c++实现svg格式转换成png_8款超好用的SVG编辑工具用起来!
- 中国省市 插入sql语句
- 【专栏】国内外物联网平台初探(篇四:京东微联)
- DC/DC内置升压芯片-FP5217MR-G1-60W大功率升压芯片支持26V输出
- 最短路径 Dijkstra算法
- 不断进阶:从“学渣”到P10,一位阿里工程师的逆袭故事