目录

  1. 获取系统版本号
  2. 获取系统信息
  3. 获取安装路径和已安装程序列表
  4. 获取图片、应用名、包名
  5. 解决listview上Item上有按钮时item本身不能点击的问题
  6. 不让文本框输入中文
  7. 获取屏幕宽高
  8. 将TabWidget显示在屏幕下方
  9. 禁止软键盘弹出
  10. 调用Android其他Context的Activity
  11. 程序中安装apk
  12. 退出程序时清除通知中信息
  13. 阴影字体设置
  14. 输入框不挤压activity布局

获取系统版本号

  1. PackageInfo info = this.getPackageManager().getPackageInfo(this.getPackageName(), 0);
  2. int versionCode=nfo.versionCode
  3. string versionName=info.versionNam

获取系统信息

  1. String archiveFilePath="sdcard/download/Law.apk";//安装包路径
  2. PackageManager pm = getPackageManager();
  3. PackageInfo info = pm.getPackageArchiveInfo(archiveFilePath, PackageManager.GET_ACTIVITIES);
  4. if(info != null){
  5. ApplicationInfo appInfo = info.applicationInfo;
  6. String appName = pm.getApplicationLabel(appInfo).toString();
  7. String packageName = appInfo.packageName; //得到安装包名称
  8. String version=info.versionName; //得到版本信息
  9. Toast.makeText(test4.this, "packageName:"+packageName+";version:"+version, Toast.LENGTH_LONG).show();
  10. Drawable icon = pm.getApplicationIcon(appInfo);//得到图标信息
  11. TextView tv = (TextView)findViewById(R.id.tv); //显示图标
  12. tv.setBackgroundDrawable(icon);

获取安装路径和已安装程序列表

  1. //(1)android中获取当前程序路径
  2. getApplicationContext().getFilesDir().getAbsolutePath()
  3. //(2)android取已安装的程序列表
  4. List<PackageInfo> packageInfoList = getPackageManager().getInstalledPackages(0);

获取图片、应用名、包名

  1. PackageManager pManager = MessageSendActivity.this.getPackageManager();
  2. List<PackageInfo> appList = Utils.getAllApps(MessageSendActivity.this);
  3. for(int i=0;i<appList.size();i++) {
  4. PackageInfo pinfo = appList.get(i);
  5. ShareItemInfo shareItem = new ShareItemInfo();
  6. //set Icon
  7. shareItem.setIcon(pManager.getApplicationIcon(pinfo.applicationInfo));
  8. //set Application Name shareItem.setLabel(pManager.getApplicationLabel(pinfo.applicationInfo).toString());
  9. //set Package Name shareItem.setPackageName(pinfo.applicationInfo.packageName);
  10. }

解决listview上Item上有按钮时item本身不能点击的问题

  1. //1. 在item试图上面添加代码:
  2. android:descendantFocusability="blocksDescendants"
  3. //2.在listview里添加代码
  4. android:focusable="true"

不让文本框输入中文

  1. android:digits="1234567890qwertyuiopasdfghjklzxcvbnm`-=[]\;,./~!@#$%^*()_+}{:?&<>"'"
  2. <!--这样就不会输入中文了-->

获取屏幕宽高

  1. DisplayMetrics displayMetrics = new DisplayMetrics();
  2. this.getWindowManager().getDefaultDisplay().getMetrics(displayMetrics);
  3. int height = displayMetrics.heightPixels;
  4. int width = displayMetrics.widthPixels;

将TabWidget显示在屏幕下方

  1. <!---设置TabWidget的属性-->
  2. android:layout_alignParentBottom="true"

为了让tabHost显示在下方,要将RadioGroup的layout_gravity设置为bottom,再将FrameLayout的 layout_weight设置为1,这样就可以将RadioGroup撑到最下方。style="@style/main_tab_bottom"里面定义了样式文件

禁止软键盘弹出

EditText有焦点(focusable为true)阻止输入法弹出

  1. editText.setInputType(InputType.TYPE_NULL); // 关闭软键盘 当EidtText无焦点(focusable=false)时阻止输入法弹出
  1. InputMethodManager imm = (InputMethodManager)getSystemService(INPUT_METHOD_SERVICE);
  2. imm.hideSoftInputFromWindow(editText.getWindowToken(), 0);

在xml文件中EditText标签有一个属性android:editable="false"和android:numeric="integer"
android:numeric="integer"表示只允许输入数字,此属性可以限制用户只能输入数字内容。
android:editable表示是否可以输入内容TRUE表示可以输入,false表示不允许输入内容;
当为android:editable="false"时,点击输入框,虚拟键盘是显示不出来的,不过当设置了android:editable=""属性时,不管是false还是true,在其后加入android:numeric="integer"属性时,是可以输入数字内容了

调用Android其他Context的Activity

  1. Context c = createPackageContext("chroya.demo", Context.CONTEXT_INCLUDE_CODE | Context.CONTEXT_IGNORE_SECURITY);
  2. //载入这个类
  3. Class clazz = c.getClassLoader().loadClass("chroya.demo.Main");
  4. //新建一个实例
  5. Object owner = clazz.newInstance();
  6. //获取print方法,传入参数并执行
  7. Object obj = clazz.getMethod("print", String.class).invoke(owner, "Hello");

这个方法有两个参数:
1、packageName  包名,要得到Context的包名
2、flags  标志位,有CONTEXT_INCLUDE_CODE和CONTEXT_IGNORE_SECURITY两个选项。 CONTEXT_INCLUDE_CODE的意思是包括代码,也就是说可以执行这个包里面的代码。CONTEXT_IGNORE_SECURITY的意思 是忽略安全警告,如果不加这个标志的话,有些功能是用不了的,会出现安全警告。

程序中安装apk

  1. Intent intent = new Intent();
  2. intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
  3. intent.setAction(android.content.Intent.ACTION_VIEW);
  4. intent.setDataAndType(Uri.fromFile(“APK”),"application/vnd.android.package-archive");
  5. startActivity(intent);

退出程序时清除通知中信息

  1. NotificationManager nm = (NotificationManager)getSystemService(NOTIFICATION_SERVICE);
  2. nm.cancelAll();

阴影字体设置

  1. <TextView android:id="@+id/tvText1"
  2. android:layout_width="wrap_content"
  3. android:layout_height="wrap_content"
  4. android:text="text1"
  5. android:textSize="30sp"
  6. android:textStyle="bold"
  7. android:textColor="#FFFFFF"
  8. android:shadowColor="#ff0000ff"
  9. android:shadowDx="5"
  10. android:shadowDy="5"
  11. android:shadowRadius="10"/>

android:shadowColor 阴影颜色

android:shadowDx 阴影的水平偏移量

android:shadowDy 阴影的垂直偏移量

android:shadowRadius 阴影的范围

输入框不挤压activity布局

在manifest文件activity下加:

  1. android:windowSoftInputMode="adjustPan"

我是天王盖地虎的分割线

Android -- 经验分享(三)的更多相关文章

  1. 关于写SpringBoot+Mybatisplus+Shiro项目的经验分享三:问题2

    框架: SpringBoot+Mybatisplus+Shiro 简单介绍:关于写SpringBoot+Mybatisplus+Shiro项目的经验分享一:简单介绍 搜索框是该项目重要的一环,由于涉及 ...

  2. Android -- 经验分享(二)

    目录                                                                                   自定义两个View进行画图,让 ...

  3. Android -- 经验分享

    目录                                                                                             代码中安装 ...

  4. MySQL 性能优化的最佳20多条经验分享(三)(转)

    16. 垂直分割 "垂直分割"是一种把数据库中的表按列变成几张表的方法,这样可以降低表的复杂度和字段的数目,从而达到优化的目的.(以前,在银行做过项目,见过一张表有100多个字段, ...

  5. 总结ThinkPHP使用技巧经验分享(三)

    add方法返回主键(id)的值在往数据表中添加数据时调用add方法,默认返回值就是刚添加的id值,就不用再去查询了. save方法返回值的判断在修改数据时,如果修改成功返回的是被修改的记录数0,1,2 ...

  6. Android内存优化解决 资料和总结的经验分享

    在前公司做一个图片处理的应用时, 项目交付的时候,客户的手机在运行应用的时候,一直在崩溃,而这个异常就是OutOfMemory的错误,简称为OOM, 搞得我们也是极其的崩溃,最后 ,我们是通过网上搜集 ...

  7. android平台短视频技术之 视频编辑的经验分享.

    android平台短视频技术之 视频编辑的经验分享. 提示一: 各位看官,这里分享的是视频编辑,即剪切/拼接/分离/合并/涂鸦/标记/叠加/滤镜等对视频的编辑操作.不是流媒体网络播放等功能,请注意. ...

  8. 开源分享三(炫酷的Android Loading动画)

    开源分享三(炫酷的Android Loading动画) 分享GitHub上的一些Loading,为了提升产品用户体验,一个好的Loading必然是不可缺少的,对于一些耗时需要用户等待的页面来说会转移用 ...

  9. fir.im Weekly - 8 个不能错过的 iOS / Android 技术分享

    本期 fir.im Weekly 收集了 2 月下旬新鲜出炉的 iOS /Android 技术分享.源码等,iOS 中图片技术的解压缩.逆向实战.iOS SDK 实践,Android架构思考.Andr ...

随机推荐

  1. 【SQL SERVER】T-SQL 字符串前加 N 是什么意思

    比如 select @status = N'stopped' 那么其中的字符串 stopped 前面为什么要加 N 呢?而且我们发现有些地方加 N 与否都没有影响,有些地方又必须加 N. N 在这里表 ...

  2. 洛谷P3275 [SCOI2011]糖果 [差分约束系统]

    题目传送门 糖果 题目描述 幼儿园里有N个小朋友,lxhgww老师现在想要给这些小朋友们分配糖果,要求每个小朋友都要分到糖果.但是小朋友们也有嫉妒心,总是会提出一些要求,比如小明不希望小红分到的糖果比 ...

  3. 【BZOJ 2671】 2671: Calc (数论,莫比乌斯反演)

    2671: Calc Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 303  Solved: 157 Description 给出N,统计满足下面条件 ...

  4. 【UOJ #108】【APIO 2013】TOLL

    http://uoj.ac/problem/108 好神的一道题啊. 原图边权互不相同是重点! 如果有一个点集,有两组边集,要求这两组边集的并集的最小生成树,可以对两组边集分别求一下最小生成树构成新的 ...

  5. PHP 笔记——String 字符串

    1. 定义 单引号括起来的字符串被原样输出. 双引号字符串中的变量被PHP解析为变量值. 2. 获取字符串长度 strlen(string $string): int 在utf-8下,汉字占3个字符, ...

  6. 数据准备<1>:数据质量检查-理论篇

    数据行业有一句很经典的话--"垃圾进,垃圾出"(Garbage in, Garbage out, GIGO),意思就是,如果使用的基础数据有问题,那基于这些数据得到的任何产出都是没 ...

  7. hdu 3089 (快速约瑟夫环)

    Josephus again Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)To ...

  8. Android:Date、String、Long三种日期类型之间的相互转换

    源地址:http://blog.csdn.net/wangyanguiyiyang date类型转换为String类型: // formatType格式为yyyy-MM-dd HH:mm:ss//yy ...

  9. hibernate核心及常用技术

    一.hibernate介绍 1.hibernate概述 hibernate是轻量级Java EE持久层解决方案,管理java类到数据库表的映射(ORM:对象关系型数据映射),并提供数据查询获取的方法. ...

  10. bzoj 1067 分情况讨论

    这道题考察人的严谨,各种情况分类讨论. #include <cstdio> #include <algorithm> #include <map> #define ...