同一个布局文件,Android5.0以下的都可以显示
而Android5.0显示不了文字
布局文件:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<View
android:layout_width="fill_parent"
android:layout_height="1px"
a...
阅读全文
你的APP支持多语言环境,假如它正在后台运行,此时用户去更换系统语言,等系统语言换好后直接从后台打开它,此时用户会发现你的界面语言没有和系统语言保持一致;为什么?主要是界面资源没有重新加载
如果你是属于自己在APP内设置语言切换,那么就可以直接在你设置切换的那个activity里做处理,重新启动一次该activity就可以了,但是如果你的APP和我类似本身是没有切换语言功能的,只是跟随系统的,那么你不可能在所有的act...
阅读全文
1,首先得下载SublimeText,网址—>http://www.sublimetext.com/,我这里下的是SublimeText 2,就以2为例了;
2,安装好后,需要去给它安装一个插件包,地址—>https://packagecontrol.io/ 如下图
3,点击如上图的Install Now 按钮后进入如下的页面,然后复制对应的版本下的代码(如图)
4,打开SublimeText 按下快捷键 ctrl+~,或者打开菜单栏View点击Hide Console 显示控制台,并将第3步中复制的代码粘贴到控制栏并按...
阅读全文
回调(CallBack),最近在学习Android时经常看到。
回调函数就是预留给系统调用的函数,而且我们往往知道该函数被调用的时机。这里有两点需要注意:
<1>回调函数不是给我们自己用的,而是给系统在某一时刻调用的;
<2>我们应该知道系统在什么情形下会调用我们写的回调函数。
下面来看看Android中用到回调函数的情景:
Button button = (Button)this.findViewById(R.id.button);
button.setOnClickListene...
阅读全文
Android应用的结构
<1> res目录
res目录存放Android项目的各种资源文件,比如layout存放界面布局文件、values目录下则存放各种XML格式的资源文件,例如字符串资源文件:string.xml;颜色资源文件colors.xml;尺寸资源文件dimens.xml;drwable-ldpi、drawable-mdpi、drawable-hdpi分别存放小、中、大三中图片文件。
<2> src目录
src目录只是一个普通的、保存Java源文件的目录。
<3> AndroidManifest.xml文件
...
阅读全文
Android的界面可以通过XML文件和Java代码两种不同的方法进行控制。
完全使用Java代码来控制UI不仅繁琐,而且不利于解耦。
完全使用XML布局文件来控制UI显得方便、便捷,但难免有失灵活。
因此,有些时候就可能需要混合使用XML布局文件和Java代码来控制Android App的UI界面。
习惯上,一般将变化小、行为比较固定的组件放在XML文件中管理,而那些变化较多、行为控制比较复杂的组件则交给Java代码来管理。
实例·【图片浏览器】
...
阅读全文
Android Handler的消息传递机制
Handler类的只要作用有两个:
1. 在新启动的线程中发送消息;2. 在主线程中获取、处理消息。
看上去,Handler的机制很简单。读者不免会问:新启动的线程何时发送消息?主线程何时去获取并处理消息?
为了能让主线程“适时”地处理新启动的线程所发送的消息,显然只能通过回调的方式来实现:开发者只要重写Handler类的处理消息的方法,这样,在新启动的线程发送消息时Handler类中处理消息的...
阅读全文
Android 更新UI的两个方法
在Android的开发过程中,常常需要适时的更新UI。Androd中的UI是在主线程中更新的。如果在主线程之外的线程中直接更新,就会出现报错并抛出异常:
android.view.ViewRoot$CalledFromWrongThreadException: Only the original thread that created a view hierarchy
can touch its views.
只有原始创建这个视图层次(view hierachy)的线程才能修改它的视图(view)
那么Android中该如何更新UI呢?
<1&...
阅读全文
在android里,第三方程序可以通过telephony对外的接口监听信号变化,电话状态变化等信息。最近在做项目的时候,把这个小串了下。
首先,先来看下telephony framework对外接口的组织架构。
其次,用个例子来解释下,第三方程序究竟是如何调用telephony api和监听telephony状态的。
packages/apps/Bluetooth/src/com/android/bluetooth/hfp/HeadsetPhoneState.java
class HeadsetPhoneState {
// ...
HeadsetPhoneState...
阅读全文
最近又碰到了一个OOM的问题,头疼...这次还是好好总结下,免得下次抓虾。
1. 内存泄露
2. Android里的垃圾回收
3. Heap
4. 调试
5. 常见的内存泄露
1.什么是内存泄露(memory leak)?
A "memory leak" in your code is when you keep a reference to an object that is no longer needed。许多小白,类似我,会问,java不是有自己的垃圾回收机制吗,为什么还会发生内存泄露那?
2.Android里的垃圾回收?
垃圾回收是JAVA...
阅读全文