• 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  
    __________________________________________________________ shoobie do lang lang ^^
  • 相关阅读:
    鸣人和佐助(OJ 6044)
    Papa的坦克(原BZOJ 1603 打谷机)
    linux基础学习之用户和用户组
    出现log4j:WARN No appenders could be found for logger 解决方法
    myeclipse当中,如何导入或者导出项目
    linux 基础学习之目录与文件处理命令
    linux 基础学习之权限管理命令
    hadoop环境搭建之伪分布集群环境搭建(单节点)
    linux基础学习之各目录的作用
    linux 基础学习之 磁盘,分区,MBR与GPT
  • 原文地址:https://www.cnblogs.com/annaivsu/p/3552738.html
Copyright © 2020-2023  润新知