android
文章平均质量分 78
xuzhuaaron1
这个作者很懒,什么都没留下…
展开
-
安卓开发之so库加载使用的那些坑
世上本没有路,踩坑的多了就把路填平了。一、UnsatisfiedLinkError基本介绍全名 java.lang.UnsatisfiedLinkError官方解释 Throw if the java Virtural Machine cannot find an appropriate native-language definition of method de原创 2016-06-21 00:12:24 · 3270 阅读 · 2 评论 -
android学习之Fragment与Activity的绑定
Fragment在android中被称为碎片,该技术的引入主要是解决android开源的多种屏幕适配问题,在平板、手机、电视都在使用android的情况下,单纯的采用activity会导致UI的单一,Fragment为了解决这种问题在android sdk11中引入。fragment需要绑定到activity中才能运行Fragment和Activity在某种程度有一定的相似性,也有类似的生命周原创 2016-05-22 14:10:00 · 6228 阅读 · 0 评论 -
FragmentActivity和Activity的具体区别在哪里
fragment是3.0以后的东西,为了在低版本中使用fragment就要用到android-support-v4.jar兼容包,而fragmentActivity就是这个兼容包里面的,它提供了操作fragment的一些方法,其功能跟3.0及以后的版本的Activity的功能一样。下面是API中的原话:FragmentActivity is a special activity provided原创 2016-05-22 14:02:35 · 285 阅读 · 0 评论 -
[Android问答] px、dp和sp,这些单位有什么区别?
相信每个Android新手都会遇到这个问题,希望这篇帖子能让你不再纠结。px:即像素,1px代表屏幕上一个物理的像素点;px单位不被建议使用,因为同样100px的图片,在不同手机上显示的实际大小可能不同,如下图所示(图片来自android developer guide,下同)。偶尔用到px的情况,是需要画1像素表格线或阴影线的时候,用其他单位如dp会显得模原创 2016-06-07 23:48:57 · 265 阅读 · 0 评论 -
使用FileInputStream和ByteArrayOutputStream 实现文本数据的回读
1、使用context.openFileInput(fileName)方法打开当前应用下的files文件夹下的fileName文件,这里所指向的txt文本中存入了文本“hello world!”。2、使用inputStream.read(buffer)方法分段的把txt文本中的内容写入buffer数组。 这里为buffer数组指定了长度为3,所以“hello world!原创 2016-06-02 00:11:09 · 723 阅读 · 0 评论 -
Android Fragment 真正的完全解析(上)
自从Fragment出现,曾经有段时间,感觉大家谈什么都能跟Fragment谈上关系,做什么都要问下Fragment能实现不~~~哈哈,是不是有点过~~~本篇博客力求为大家说明Fragment如何产生,什么是Fragment,Fragment生命周期,如何静态和动态的使用Fragment,Fragment回退栈,Fragment事务;以及Fragment的一些特殊用途,例如:没有布局的Fr原创 2016-05-08 23:02:38 · 669 阅读 · 0 评论 -
Android中几种图像特效处理的集锦!!
大家好,这一节给大家分享的是Android中几种图像特效处理的小技巧,比如圆角,倒影,还有就是图片缩放,Drawable转化为Bitmap,Bitmap转化为Drawable等等.废话少说了,直接讲解今天的实例,本例主要是先获取壁纸(getWallpaper()),然后对当前壁纸的一些特效处理.大家按步骤一步一步来:第一步:新建一个Android工程命名为ImageDemo,工程结转载 2016-05-08 22:52:41 · 291 阅读 · 0 评论 -
Android 关闭多个视图Intent.FLAG_ACTIVITY_CLEAR_TOP用法
如果已经启动了四个Activity:A,B,C和D。在D Activity里,我们要跳到B Activity,同时希望C finish掉,可以在startActivity(intent)里的intent里添加flags标记,如下所示:[java] view plaincopyIntent intent = new Intent(this, B原创 2016-05-06 00:40:08 · 265 阅读 · 0 评论 -
自定义View之onMeasure()
可以说重载onMeasure(),onLayout(),onDraw()三个函数构建了自定义View的外观形象。再加上onTouchEvent()等重载视图的行为,可以构建任何我们需要的可感知到的自定义View。本节我们探索自定义View中onMeasure()起到了什么样的作用,题外要插的一句是,Activity框架,View框架中大量的on函数基本上都应用到了Template模式(模板设计原创 2016-05-26 00:51:26 · 1704 阅读 · 2 评论 -
Android View.onMeasure方法的理解
View在屏幕上显示出来要先经过measure(计算)和layout(布局).1、什么时候调用onMeasure方法? 当控件的父元素正要放置该控件时调用.父元素会问子控件一个问题,“你想要用多大地方啊?”,然后传入两个参数——widthMeasureSpec和heightMeasureSpec.这两个参数指明控件可获得的空间以及关于这个空间描述的元数据.更好的方法是你传递View原创 2016-05-26 23:39:27 · 362 阅读 · 0 评论 -
解析:TypedArray 为什么需要调用recycle()
在 Android 自定义 View 的时候,需要使用 TypedArray 来获取 XML layout 中的属性值,使用完之后,需要调用 recyle() 方法将 TypedArray 回收。那么问题来了,这个TypedArray是个什么东西?为什么需要回收呢?TypedArray并没有占用IO,线程,它仅仅是一个变量而已,为什么需要 recycle? 为了解开这个谜,首先去找原创 2016-05-13 23:20:10 · 675 阅读 · 0 评论 -
Android中的事件分发机制
1. 一个小问题引发的思考2. 通过源码探索View中的事件分发机制3.通过源码探索ViewGroup的事件分发机制4.结论5.参考文献最近的一个项目中涉及到UGC的处理,大致布局为一个RelativeLayout包含了一个EditText和一个Button,当点击EditText时,弹出软键盘,点击RelativeLayout中除了EditText和Button之外其它的原创 2016-05-23 23:27:30 · 615 阅读 · 0 评论 -
Android View的onTouchEvent和OnTouch区别
还是以自定义的TestButton为例。我们可以通过重写onTouchEvent方法来处理诸如down move up的消息:[java] view plain copy print?public class TestButton extends Button { public TestButton(Contex原创 2016-05-24 23:38:39 · 440 阅读 · 0 评论 -
【Android布局】在程序中设置android:gravity 和 android:layout_Gravity属性
在进行UI布局的时候,可能经常会用到 android:gravity 和 android:layout_Gravity 这两个属性。 关于这两个属性的区别,网上已经有很多人进行了说明,这边再简单说一下。 (资料来自网络) LinearLayout有两个非常相似的属性:android:gravity与android:layo原创 2016-05-10 23:01:18 · 874 阅读 · 0 评论 -
android ListView 几个重要属性
由于这两天在做listView的东西,所以整理出来一些我个人认为比较特别的属性,通过设置这样的属性可以做出更加美观的列表首先是stackFromBottom属性,这只该属性之后你做好的列表就会显示你列表的最下面,值为true和falseAndroid:stackFromBottom="true" 第二是transciptMod原创 2016-05-22 14:53:03 · 304 阅读 · 0 评论 -
Android文件断点上传器[多用户并发访问]
通过TCP/IP(SOCKET)协议实现文件断点上传(实现多用户并发访问)。HTTP不支持文件断点续传,所以无法使用HTTP协议。场景:1. 网络不稳定,导致上传失败,下次不是从头开始,而是从断点开始上传;2. 上传大文件,无法http上传,因为web服务器考虑到安全因素,会限制文件大小,一般10+m。此文件断点上传器使用自定义协议。服务器为原创 2016-06-03 23:43:47 · 508 阅读 · 0 评论 -
Android开发学习笔记:浅谈显示Intent和隐式Intent
Intent寻找目标组件的两种方式:显式Intent:通过指定Intent组件名称来实现的,它一般用在知道目标组件名称的前提下,一般是在相同的应用程序内部实现的。隐式Intent:通过Intent Filter来实现的,它一般用在没有明确指出目标组件名称的前提下,一般是用于在不同应用程序之间。一.显式Intent 一般情况下,一个Android应用程序中需要多个屏幕,即原创 2016-06-15 23:41:12 · 335 阅读 · 0 评论 -
Android 中文件类型与MIME的匹配表
背景介绍:MIME:全称Multipurpose Internet Mail Extensions,多功能Internet 邮件扩充服务。它是一种多用途网际邮件扩充协议,在1992年最早应用于电子邮件系统,但后来也应用到浏览器。MIME类型就是设定某种扩展名的文件用一种应用程序来打开的方式类型,当该扩展名文件被访问的时候,浏览器会自动使用指定应用程序来打开。多用于指定一些客户端自定义的文件原创 2016-06-15 23:38:32 · 606 阅读 · 0 评论 -
IntentFilter
当Intent在组件间传递时,组件如果想告知Android系统自己能够响应和处理哪些Intent,那么就需要用到IntentFilter对象。 顾名思义,IntentFilter对象负责过滤掉组件无法响应和处理的Intent,只将自己关心的Intent接收进来进行处理。 IntentFilter实行“白名单”管理,即只列出组件乐意接受的Intent,但IntentFilter只会过滤原创 2016-06-15 22:53:48 · 252 阅读 · 0 评论 -
IntentFilter与隐式Intent
android系统处理隐式Intent时, 会比较Intent和IntentFilter的action, data, category属性, 如果以上3个属性全都相符的话, 则IntentFilter所属的component就可以作为目标组件的候选(存在多个符合条件的component时). 1. 测试action属性. intent最多只能定义1个action, 而filter可以定义1个或原创 2016-06-15 22:44:33 · 257 阅读 · 0 评论 -
ScrollView和ListView一起使用 文本换行getMeasuredHeight等问题的解
首先,ListView不能直接用,要自定义一个,然后重写onMeasure()方法:import android.content.Context;import android.util.AttributeSet;import android.widget.ListView;public class MyListView extends ListView { public原创 2016-06-12 23:01:45 · 750 阅读 · 0 评论 -
ListView的position的保持
需求场景:一个ListView页面,滑动阅读到某一位置,然后退出页面,下次再进入页面的时候,想要直接滑动到上次阅读的位置。 方案1:页面退出的时候,ListView.getFirstVisiblePosition()来获取当前可见的第一个Item的position并记录,下次再进入页面的时候通过ListView.setSelection(int position)把原创 2016-06-12 22:45:46 · 351 阅读 · 0 评论 -
android-BroadcastReceiver 发送有序广播
普通广播(Normal Broadcast):一,优缺点:和有序广播的优缺点相反!二,发送广播的方法:sendBroadcast()有序广播(Ordered Broadcast):一,优缺点优点:1,按优先级的不同,优先Receiver可对数据进行处理,并传给下一个Receiver 2,通过abortBroadca原创 2016-06-27 22:39:10 · 537 阅读 · 0 评论 -
Android中AsyncTask的简单用法
在开发Android移动客户端的时候往往要使用多线程来进行操作,我们通常会将耗时的操作放在单独的线程执行,避免其占用主线程而给用户带来不好的用户体验。但是在子线程中无法去操作主线程(UI 线程),在子线程中操作UI线程会出现错误。因此android提供了一个类Handler来在子线程中来更新UI线程,用发消息的机制更新UI界面,呈现给用户。这样就解决了子线程更新UI的问题。但是费时的任务操作总原创 2016-06-06 00:00:23 · 240 阅读 · 0 评论 -
touch事件分析
事件分发:public boolean dispatchTouchEvent(MotionEvent ev) Touch 事件发生时 Activity 的 dispatchTouchEvent(MotionEvent ev) 方法会以隧道方式(从根元素依次往下传递直到最内层子元素或在中间某一元素中由于某一条件停止传递)将事件传递给最外层 View 的 dispatchTouchEvent(M原创 2016-05-22 22:20:41 · 274 阅读 · 0 评论 -
Android Fragment 真正的完全解析(下)
上篇博客中已经介绍了Fragment产生原因,以及一些基本的用法和各种API,如果你还不了解,请看:Android Fragment 真正的完全解析(上)。本篇将介绍上篇博客提到的:如何管理Fragment回退栈,Fragment如何与Activity交互,Fragment与Activity交互的最佳实践,没有视图的Fragment的用处,使用Fragment创建对话框,如何与Acti原创 2016-05-22 16:58:51 · 1376 阅读 · 0 评论 -
Android Fragment 真正的完全解析(上)
自从Fragment出现,曾经有段时间,感觉大家谈什么都能跟Fragment谈上关系,做什么都要问下Fragment能实现不~~~哈哈,是不是有点过~~~本篇博客力求为大家说明Fragment如何产生,什么是Fragment,Fragment生命周期,如何静态和动态的使用Fragment,Fragment回退栈,Fragment事务;以及Fragment的一些特殊用途,例如:没有布局的Fr原创 2016-05-22 16:53:18 · 285 阅读 · 0 评论 -
基于android的Socket通信
有关通信原理内容是在网上或百科整理得到,代码部分为本人所写,如果不当,还望指教。一、Socket通信简介 Android与服务器的通信方式主要有两种,一是Http通信,一是Socket通信。两者的最大差异在于,http连接使用的是“请求—响应方式”,即在请求时建立连接通道,当客户端向服务器发送请求后,服务器端才能向客户端返回数据。而Socket通信则是在双方原创 2016-06-04 00:32:56 · 253 阅读 · 0 评论 -
Android中IntentService与Service的区别
Android中的Service是用于后台服务的,当应用程序被挂到后台的时候,问了保证应用某些组件仍然可以工作而引入了Service这个概念,那么这里面要强调的是Service不是独立的进程,也不是独立的线程,它是依赖于应用程序的主线程的,也就是说,在更多时候不建议在Service中编写耗时的逻辑和操作,否则会引起ANR。那么我们当我们编写的耗时逻辑,不得不被service来管理的时候,就原创 2016-04-10 18:22:25 · 311 阅读 · 0 评论 -
Android线程间通讯的几种方式
1.runOnUiThread(Runnable) 在子线程中直接使用该方法,可以更新UIrunOnUiThread(new Runnable(){//更新UI @Override public void run() { publi原创 2016-04-12 23:40:34 · 635 阅读 · 0 评论 -
Android面试题目整理与讲解
1.简述Activity的生命周期当Activity开始启动的时候,首先调用onCreate(),onStart(),onResume()方法,此时Activity对用户来说,是可见的状态当Activity从可见状态变为被Dialog遮挡的状态的时候,会调用onPause()方法,此时的Activity对用户可见,但是不能相应用户的点击事件原创 2016-02-29 23:19:06 · 291 阅读 · 0 评论 -
onNewIntent()方法何时会被调用
Activity的onNewIntent()方法何时会被调用 前提:ActivityA已经启动过,处于当前应用的Activity堆栈中;当ActivityA的LaunchMode为SingleTop时,如果ActivityA在栈顶,且现在要再启动ActivityA,这时会调用onNewIntent()方法当ActivityA的LaunchMode为SingleInstanc原创 2016-01-26 23:51:17 · 2753 阅读 · 0 评论 -
android Bitmap getByteCount和getRowBytes
今天做图像缓存需要计算Bitmap的所占的内存空间,于是研究了下Bitmap关于内存占用的API1、getRowBytes:Since API Level 1,用于计算位图每一行所占用的内存字节数。2、getByteCount:Since API Level 12,用于计算位图所占用的内存字节数。经实测发现:getByteCount()原创 2016-01-25 00:10:33 · 255 阅读 · 0 评论 -
Android开发学习:ImageView的scaletype属性
ImageView.ScaleType|android:scaleType值的意义:ImageView.ScaleType.CENTER|android:scaleType="center" 按图片的原来size居中显示,当图片长/宽超过View的长/宽,则截取图片的居中部分显示ImageView.ScaleType.CENTER_CROP|android:scaleTyp原创 2016-01-19 23:23:59 · 254 阅读 · 0 评论 -
tools:context=".MainActivity的作用
[html] view plain copy print?TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerHorizontal="true"转载 2016-01-20 22:02:36 · 2136 阅读 · 0 评论 -
BitmapFactory.Options详解
public BitmapinBitmapIf set, decode methods that take the Options object will attempt to reuse this bitmap when loading content.public intinDensityThe pixel原创 2016-01-21 22:21:04 · 592 阅读 · 0 评论 -
Android处理图片OOM的若干方法小结
前言众所周知,每个Android应用程序在运行时都有一定的内存限制,限制大小一般为16MB或24MB(视平台而定)。因此在开发应用时需要特别关注自身的内存使用量,而一般最耗内存量的资源,一般是图片、音频文件、视频文件等多媒体资源;由于Android系统对音频、视频等资源做了边解析便播放的处理,使用时并不会把整个文件加载到内存中,一般不会出现内存溢出(以下简称OOM)的错误,因此它们的内存消原创 2016-01-21 23:01:08 · 380 阅读 · 0 评论 -
关于Android 中 Options.inSampleSize怎么用
这个是读取bitmap时用到的属性,是为了对原图降采样.比如原图是一个 4000 * 4000 点阵的图,占用内存就是 4000 * 4000 * 单个像素占用字节数 单个像素占用字节数取决于你用的是 RGB565, ARGB8888 等. 4000 * 4000 这个解析度已很接近目前市面主流机器的默认照片解析度.假设你用的是RGB565解析这张图,那一个点就占用2个字节.如果完整解析原创 2016-01-21 21:58:37 · 5284 阅读 · 0 评论 -
Android获取Bitmap的大小
最近刚进入新公司实习,在查看Android项目代码的时候看到以前的同事是这么写的代码获取Bitmap的大小:return bitmap.getRowBytes() * bitmap.getHeight();// 获取大小并返回感觉很奇怪,为什么要这样计算而不是直接调用bitmap.getByteCount();呢?查阅文档之后才知道,这个项目的minSDK=8,target原创 2016-01-25 00:03:45 · 2173 阅读 · 0 评论 -
软引用 弱引用 缓存
1、概述 在JDK1.2以前的版本中,当一个对象不被任何变量引用,那么程序就无法再使用这个对象。也就是说,只有对象处于可触及状态,程序才能使用它。这 就像在日常生活中,从商店购买了某样物品后,如果有用,就一直保留它,否则就把它扔到垃圾箱,由清洁工人收走。一般说来,如果物品已经被扔到垃圾箱,想再 把它捡回来使用就不可能了。 但有时候情况并不这么简单,你可能会遇到类似鸡肋一样的物品原创 2016-01-20 23:40:53 · 811 阅读 · 0 评论