安卓
betterAndroider
总结自己,一点一滴,用博客见证我的成长。
展开
-
Android WifiManager.WifiLock 简介
经过查看网上的资料,知道在手机屏幕关闭之后,并且其他的应用程序没有在使用wifi的时候,系统大概在两分钟之后,会关闭wifi,使得wifi处于睡眠状态。这样的做法,有利于电源能量的节省和延长电池寿命等。Android为wifi提供了一种叫WifiLock的锁,能够阻止wifi进入睡眠状态,使wifi一直处于活跃状态。这种锁,在下载一个较大的文件的时候,比较适合使用。WifiLock转载 2017-07-21 09:09:34 · 1051 阅读 · 0 评论 -
安卓Intent跳转到系统应用中的一些界面的方法 .
现在开发中的功能需要直接跳转到拨号、联系人、短信界面等等,查找了很多资料,自己整理了一下。 首先,我们先看拨号界面,代码如下:[java] view plaincopyIntent intent =new Intent(); intent.setAction("android.intent.action.CALL_BU转载 2016-06-11 19:06:08 · 3273 阅读 · 0 评论 -
Android代码设计规范
变量命名规范 1.小驼峰 myStudent 用来定义常量变量方法,推荐使用小驼峰 2.大驼峰 MyStudent 用来定义一些类名,推荐使用大驼峰控件的命名方法 TextView tv_name;//显示名字的textview EditText et_name;//显示名字的EditText初始化布局 使用一个initView()函数初始化数据 使用一个initData()函数方法原创 2016-05-08 20:02:38 · 314 阅读 · 0 评论 -
实现activity管理器一次退出所有activity
关于怎么一次退出所有Activity网上有很多很多种说法,比如用杀进程的方式:android.os.Process.killProcess(android.os.Process.myPid());这种方式需要添加权限android.permission.KILL_BACKGROUND_PROCESSES;或者用System.exit(0);退出。另外一种方法是用ActivityMana转载 2016-05-07 22:08:26 · 727 阅读 · 0 评论 -
手机内存卡的相关路径问题
android手机获取自带存储路径和sd卡存储路径的方式是:调用Environment.getExternalStorageDirectory(),返回的存储目录并不是系统内置的SD卡目录。1.一部分手机将eMMC存储挂载到 /mnt/external_sd 、/mnt/sdcard2 等节点,而将外置的SD卡挂载到 Environment.getExternalStorageDirector转载 2016-05-03 14:21:40 · 977 阅读 · 0 评论 -
android学习——popupWindow 在指定位置上的显示
先看效果图,免得浪费大家时间,看是不是想要的效果 。直接上代码 ,核心方法。[java] view plain copyprivate void showPopupWindow(View parent) { if (popupWindow == null) {转载 2016-05-02 10:35:10 · 888 阅读 · 0 评论 -
Android-ExifInterface如何正确存取Double类型坐标
1、向图片中存储一些属性,可以使用ExifInterface,属性有很多,查看源码就能知道;通过测试,发现不能存储除了该类定义外的其他属性信息。通过setAttribute(String tag,String value);然后需要saveAttributes()。2、目前想存储Double类型坐标,但是通过getAttribute(String tag)取出来的内容形转载 2016-05-01 08:40:29 · 709 阅读 · 0 评论 -
通过ExifInterface 读取图片信息
Android 2.0开始 加入的 android.media.ExifInterface 包中如下方法读取相关信息: /** * * 目前Android SDK定义的Tag有: * TAG_DATETIME 时间日期 * TAG_FLASH 闪光灯 * TAG_GPS_LATITUDE 纬度 * TAG_GPS_LATITUDE_REF 纬度参考转载 2016-04-30 21:45:28 · 519 阅读 · 0 评论 -
android轻松管理安卓应用中的log日志 发布应用时log日志全部去掉的方法
管理log一般有两种方法,博主推荐大家使用下面的第一种方法:第一种方法:第一步:定义一个logTools工具类,相信你能够看懂的,谁的log,可以用谁的名字做方法名,如logli,这就是工程师li打印的日志代码如下:import android.util.Log;public class LogTools { public static boolean i转载 2016-04-26 10:17:10 · 1421 阅读 · 0 评论 -
一些开源的空间库
源码参考iOS-App 源码值得参考?http://www.zhihu.com/question/28518265?rf=28477097http://www.douban.com/note/276160185/?type=likeAndroidhttps://github.com/Trinea/android-open-projecthttp://www.zhih原创 2016-03-27 11:46:14 · 633 阅读 · 0 评论 -
Fragment放置后台很久(Home键退出很长时间),返回时出现Fragment重叠解决方案
出现问题的应用场景:MainActivity继承自FragmentActivity,包含4个作为tab栏的Fragment(SupplyFragment, CarFragment, LocationFragment, UcenterFragment)。当打开app,此时按Home键退出app,长时间(半天或一天)后返回,点击”车辆管理“,还是显示的货源信息的ui界面,如下图:在转载 2015-12-05 22:53:01 · 2651 阅读 · 1 评论 -
Incorrect line ending: found carriage return (\r) without corresponding newline (\n)解决办法
详细提示如下:Incorrect line ending: found carriage return (\r) without corresponding newline (\n): Incorrect line ending: found carriage return (\r) without corresponding newline 2013-03-17转载 2015-12-04 14:57:53 · 590 阅读 · 0 评论 -
Android 跳转应用市场的应用详情页
工具类: public static Intent getIntent(Context paramContext) { StringBuilder localStringBuilder = new StringBuilder().append("market://details?id="); String str = paramContext.getPackageName(转载 2016-06-11 19:10:39 · 818 阅读 · 0 评论 -
代码变量命名规范
为什么很多人写代码会在变量名前面加一个小写的m?上大学那会儿就对这个问题感到很好奇。于是网上到处搜,有人说是member的意思。于是后来一直就这么认为。最近在读Android源码,发现很多系统变量命名时都加了m,而有的变量又没有加m,这是什么情况?于是Google了一把,“letter m before variable ”,第一条结果是来自stackoverflow的答案。终于看转载 2016-07-25 11:04:36 · 2020 阅读 · 0 评论 -
viewpager中彻底性动态添加、删除Fragment
版权声明:本文为博主原创文章,未经博主允许不得转载。[java] view plain copy "font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);">"white-space:pre"> viewpager嵌套fragme转载 2016-10-08 13:01:43 · 3120 阅读 · 0 评论 -
ViewPager子View滑动事件冲突解决
事件分发:public boolean dispatchTouchEvent(MotionEvent ev) Android事件以隧道方式逐层向下传递。事件首先由dispatchTouchEvent方法分发,分发逻辑如下: return true;由该dispatchTouchEvent方法消费并且停止分发。 return false;返回给父view的onTouch方法处理转载 2016-11-10 16:48:22 · 3668 阅读 · 0 评论 -
ListView的Item中子控件抢占焦点的两种解决办法 .
当为ListView的Item自定义布局时,如果布局中包含可获取焦点的子控件(诸如ImageButton,Button,CheckBox等子控件,也可以说是Button或者Checkable的子类控件),就会出现子控件抢占焦点的问题,即焦点被子控件截获,Item的点击事件将无法响应。提供两种简单的解决办法: 1、在自定义布局的根部局容器中添加 android:descendantFo转载 2016-08-13 14:55:22 · 1405 阅读 · 0 评论 -
imageview清空缓存状态
调用 imageview.refreshDrawableState();清除之前加载过的图片缓存原创 2016-08-23 18:03:36 · 5240 阅读 · 0 评论 -
Android的Fragment的生命周期各状态和回调函数使用
回调函数就像activities一样,fragments也有它们自己的生命周期。理解fragments的生命周期,可以使你在它们被销毁的时候保存它们的实例,这样在它们重新被创建的时候,就能恢复它们之前的状态。流程: onAttach() 作用:fragment已经关联到activity, 这个是 回调函数?12345转载 2016-08-21 11:18:22 · 3800 阅读 · 0 评论 -
Android内存泄露详解
首先介绍一下内存泄露的概念:内存泄漏指由于疏忽或错误造成程序未能释放已经不再使用的内存的情况。内存泄漏并非指内存在物理上的消失,而是应用程序分配某段内存后,由于设计错误,导致在释放该段内存之前就失去了对该段内存的控制,从而造成了内存的浪费。1.静态变量导致的内存泄露下面这种情形是一种最简单的内存泄露,将会导致Activity无法正常的销毁。public class TestActivity exte原创 2016-08-01 16:27:31 · 1219 阅读 · 1 评论 -
View的事件分发
1.事件分发常用的三个函数public boolean dispathTouchEvent(MotionEvent ev);用来进行事件分发,如果事件能够传递给当前view,那么此方法一定会调用,返回结果受当前View的onTouchEvent和下级View的dispathTouchEvent方法的影响,表示是否消耗当前事件。public boolean onInterceptTouchEvent(原创 2016-07-21 15:18:22 · 299 阅读 · 0 评论 -
Android开源项目分包方式学习
总感觉Android中关于分包的文章很少,或者几乎可以说没有。但是合理地分包,又可以使整个项目模块化,减少包与包之间的依赖,让整个项目的框架更加清晰,更利于后续功能的拓展。因为没有相关的文章,所以这里晒出三款开源项目的分包方式,供大家学习。(一) eoe社区 Android 客户端src├ cn.eoe.app --存放程序全局性类的包 ├ cn.eoe.app转载 2016-08-03 15:02:04 · 1674 阅读 · 0 评论 -
View的绘制原理
1.初识ViewRoot和DecorViewViewRoot对应于ViewRootImpl类,它是连接WindowManager和DecorView的纽带,View的三大流程均是通过ViewRoot来完成的,在ActivityThread中,当ActivityThread中,当Activity对象被创建完毕后,会将DecorView添加到Window中,同时会创建ViewRootImpl对象,并将V原创 2016-07-28 13:14:10 · 7511 阅读 · 1 评论 -
View的滑动冲突解决方案
1.常见的滑动冲突场景1.1 外部滑动方向和内部滑动的方向不一致这种情况我们经常遇见,比如使用viewpaper+listview时,在这种效果中,可以通过左右滑动切换页面,而每一个页面往往又是一个listview,本来在这种情况下是有冲突的,但是Viewpaper内部处理了这个滑动冲突,因此采用viewpaper我们无需关注这个问题,如果我们采用的不是Viewpaper而是ScrollView等,原创 2016-07-24 16:09:08 · 3910 阅读 · 1 评论 -
View的基础知识
1.View基础知识首先我们来了解一下什么是view,view是Android中所有控件的基类,不管button和textview这些view还是Linearlayout或者Listview等viewgroup都是继承view这个基类。1.1 view的位置参数view的top、bottom、left、right参数的位置,是相对于父容器而言的top是左上角的纵坐标 view.getTop()原创 2016-07-27 15:22:58 · 677 阅读 · 0 评论 -
Android 上传文件,图片。以及服务器端接收相关
前面一篇文章写了实现照相功能的一个例子,其实那个实现效果是个略缩图。要查看全图就要先指定照片的存放路径。以后我会修改那个文章。今天先说下图片,文件等上传的实现。接着拿照片说事,光照完了不行还得往服务器上传。我们做web开发的时候几乎都是通过一个表单来实现上传。并且是post的方式。而且都必须要加个参数enctype = "multipart/form-data".然后再上传后台用各种框转载 2015-12-02 23:23:29 · 825 阅读 · 0 评论 -
android:layout_weight的真实含义
首先声明只有在Linearlayout中,该属性才有效。之所以android:layout_weight会引起争议,是因为在设置该属性的同时,设置android:layout_width为wrap_content和match_parent会造成两种截然相反的效果。如下所示:[html] view plaincopyprint?LinearLa转载 2015-10-15 14:47:25 · 335 阅读 · 0 评论 -
Android 如何全局获取Context
有时,在处理业务逻辑的时候,需要Context对象,但在某些情况下,并非容易获取,这时就需要一些巧妙的手段来管理Context。 在Android中,提供了一个类Application,当应用程序启动的时候,系统会自动将这个类进行初始化,所以我们可以编写自己的Application类以管理一些全局的状态信息。 在这里,以获取全局Context为例。1、编写自己转载 2015-09-25 13:52:55 · 365 阅读 · 0 评论 -
通过Intent将数据传递给上一个活动
之前我们将数据从第一个活动传递给第二个活动,用的是startActivity()函数,通过查阅文档,我们发现还有一个startActivityForResult()函数也是用来启动活动的,但是这个方法期望在下一个活动销毁的时候能够返回结果给上一个活动。startActivityForResult(Intent intent,int requestCode) //requestCode是请求码,原创 2015-09-07 21:25:56 · 811 阅读 · 0 评论 -
如何在安卓中添加安卓API源代码
首先你需要下载安卓API代码地址:http://download.csdn.net/detail/zhang957411207/4416564然后将下载好的zip文件放到自己SDK存放的路径下,比如我的:D:\java\adt-bundle-windows-x86_64-20140321\sdk\platforms\android-19,在这个目录下新建一个sources文件夹,将zip放进去,并且原创 2015-09-08 11:14:53 · 1106 阅读 · 0 评论 -
安卓四大组件----活动
1.一个安卓应用中必须告知Application那一个是最先启动的Activity,这时就要在AndroidManifest.xml中的活动activity中添加上 <intent-filter> <action android:name="android.intent.action.MAIN"> <category android:name="android.intent.category.原创 2015-09-07 20:00:24 · 508 阅读 · 0 评论 -
Android 中关于 【Cursor】 类的介绍
使用过 SQLite 数据库的童鞋对 Cursor 应该不陌生,如果你是搞.net 开发你大可以把Cursor理解成 Ado.net 中的数据集合相当于dataReader。今天特地将它单独拿出来谈,加深自己和大家对Android 中使用 Cursor 的理解。关于 Cursor在你理解和使用 Android Cursor 的时候你必须先知道关于 Cursor 的几件事情:转载 2015-09-28 22:25:24 · 299 阅读 · 0 评论 -
Android中this、super的区别
在 Java中,this通常指当前对象,super则指父类的。当你想要引用当前对象的某种东西,比如当前对象的某个方法,或当前对象的某个成员,你便可以利用this来实现这个目的,当然,this的另一个用途是调用当前对象的另一个构造函数,这些马上就要讨论。如果你想引用父类的某种东西,则非 super莫属。由于this与super有如此相似的一些特性和与生俱来的某种关系,所以我们在这一块儿来讨论,希转载 2015-09-07 19:36:07 · 384 阅读 · 0 评论 -
Android 判断当前线程是否是主线程的两种方法
使用Looper判断,方法为: Looper.myLooper() != Looper.getMainLooper()使用线程句柄判断,将主线程的Thread.currentThread()获取到主线程当前句柄,保存起来,在需要判断的时候调用Thread.currentThread()来与之比较,即可判断当前线程是否是主线程了。转载 2015-09-25 13:58:01 · 378 阅读 · 0 评论 -
Android实现定时器的方法
一、Handler 和 Threadpackage com.lstech.app;import android.app.Activity;import android.os.Bundle;import android.os.Handler;import android.os.Message;import android.widget.TextView;/** * ha转载 2015-09-10 15:30:23 · 260 阅读 · 0 评论 -
android开发: The import com.google cannot be resolved 的解决办法
这个主要是因为所选的SDK版本不正确。修改方法: 在eclipse中依次选择:"Project" --> "Properties" --> "Android", 然后勾选 “Google APIs”选项即可。转载 2015-08-06 14:43:25 · 880 阅读 · 0 评论 -
ListView的实例讲解
列表(listview)是Android界面开发的常用到的组件,通过列表的形式展现内容,其中子元素能够自适应长度显示。使用listview我个人觉得只要搞懂两点就可以了: 1.写出供显示的listview的一个子元素的xml。 2.适配器 系统提供给我们的适配器有ArrayAdapter(只能显示一行字)、SimpleAdapter(能够显示字和图片,个人觉得这个已经够用了)光说不练是没有用的原创 2015-06-28 23:13:36 · 581 阅读 · 0 评论 -
The connection to adb is down, and a severe error has occured
启动android模拟器时.有时会报The connection to adb is down, and a severe error has occured.的错误.在网友说在任务管理器上把所有adb.exe关闭掉.重启eclipse.但试过不管用.所以在外国网站上找到一种可行的方法:1.先把eclipse关闭.2.在管理器转到你的android SDK 的platform-to转载 2015-06-24 22:15:03 · 351 阅读 · 0 评论 -
TabWidget切换卡
TabWidget是一种控件,通过多种标签来切换显示不同的内容,一个TabWidget主要由一个TabHost来存放多个Tab标签容器,再在Tab容器中加入其它控件,通过addTab方法可以增加新的Tab。这些除了在xml文件中布置好控件外,当然还需要在Java文件中处理好事件的逻辑。构建TabWidget控件主要需要两个步骤:1.先写好xml文件 <?xml version="1.0"原创 2015-06-25 10:10:44 · 894 阅读 · 0 评论 -
组件之间的信使----Intent
Intent分为显式Intent和隐式Intent 1.显示Intent的用法 构造函数为Intent(Context context,Class Intent intent=new Intent(FirstActivity.this,secondActivity.this);startActivity(intent);2.隐式Intent的用法 相对于显式的Intent,隐式的Intent原创 2015-09-07 20:45:06 · 544 阅读 · 0 评论